翻到第 5000 页
LIMIT 20 OFFSET 100000 —— 它是怎么找到第 100001 行的?
Copie a instrução e escolha um modelo. Ele faz o papel de entrevistador e vai te perguntando ato por ato, em vez de entregar a resposta.
Num celular com o aplicativo instalado, o sistema abre o aplicativo direto. Dentro do WeChat não é possível abrir aplicativos externos — abra primeiro no navegador.
O texto copiado termina com o gabarito que o modelo usa para te avaliar. Não leia antes: o que vale é ter chegado lá sozinho.
答案朴素得让人不舒服:一条条数过去。知道这一句之后,「为什么加了索引还是慢」「为什么第一页快最后一页慢」就都不用问了。
但这一份的一半重量在另一边:换成游标分页之后你放弃了什么。跳页没了、总页数没了、收藏的「第 37 页」也没了 —— 说不出这几条的,只是抄了一个方案。收尾时它会把「只说了技术代价」的地方单独标出来。
最后还问一句很少有人问的:到底是谁在翻第 5000 页?
O que este treina
Este texto no repositório (o gabarito está no fim daquele arquivo — você vai ver)
Já fez este?
Entre para marcar que já treinou este; da próxima vez você verá em que dia foi.
Anotações de quem já fez
Como usar
Esta série é de aprendizado: ela conduz, não encurrala. Quando você trava, ela primeiro pergunta em que camada você travou (nunca ouvi falar / sei mas não sei por quê / sei por quê mas não consigo usar) e só então decide o que dar. Só explica depois de conduzir duas vezes, e em seguida pede que você repita com suas palavras.
Por padrão ela raciocina em MySQL / InnoDB —— metade das armadilhas aqui são detalhes de implementação, e índice agrupado, volta à tabela e gap locks funcionam diferente em outros bancos. PostgreSQL ou outro serve: diga isso na primeira frase e ela segue o seu banco, apontando onde as conclusões mudam.
Como começar
- Escolha um, abra e copie o prompt.
- Cole numa conversa nova e vazia e diga primeiro qual banco e versão você usa (sem isso ela assume MySQL 8).
- Depois não diga mais nada e espere a primeira pergunta.
Quatro comandos para usar a qualquer momento
跳过Já para o próximo ato换个说法Explicar este ponto por outro ângulo直说吧Dar a resposta completa e depois me fazer repetir复盘Ir direto para a ficha final
Três armadilhas
- Não leia o gabarito do fim antes —— a seção «erros de raciocínio comuns» é a resposta de cada pergunta.
- Prepare-se para ser cobrado por números. «Um pouco mais rápido», «economiza IO» é cortado na hora: quantas linhas? quantas vezes? quantas vezes mais rápido? Conclusão sem número é decoreba.
- Assim que começar a elogiar, lembre-o da regra «não me elogie». Conduzir não é acariciar.
Comece pelo índice composto: é o alicerce da série; «os bloqueios ficam nos registros de índice» e «por que ele lê tantas linhas» se apoiam os dois na frase-chave dele. Se a concorrência está mordendo em produção, comece por «ler e depois gravar»; se as consultas estão lentas, pelo plano de execução.
Entrar para escrever uma anotação.