Available inPortugueseEnglishFrenchGermanHindiRussianSpanish
SQL e bancos de dados para entrevistas
Escreva sozinho um JOIN, um GROUP BY ou uma função de janela corretos, depois leia o que o motor fez com eles: o plano do EXPLAIN, o índice escolhido, a anomalia de isolamento à qual sua transação está exposta. Para engenheiros de backend diante de uma etapa de banco de dados; a sintaxe do SQL é pressuposta, não ensinada. Oitenta e cinco cartões, da semântica de JOIN e da lógica de NULL a B-trees, MVCC e níveis de isolamento; replicação e sharding ficam com Entrevista de System Design.
O segundo número de cost=0.00..8.30 está oculto. O que esse número estima?
O custo total de devolver todas as linhas daquele nó
— Não são milissegundos: a unidade é do próprio planejador.
— Pergunte o que o planejador minimiza quando não há LIMIT.
Source
O par de custos é custo de início e custo total, ambos em unidades arbitrárias do planejador, historicamente escaladas para que uma leitura sequencial de página custe 1.0 (manual do PostgreSQL, Using EXPLAIN). Duas consequências que vale dizer em voz alta: um custo só é comparável a outro plano da mesma consulta, nunca a um milissegundo; e o custo de um nó superior já inclui tudo o que está abaixo dele, então a linha do topo é a consulta inteira. Costuma ser confundido com o primeiro número, o custo de início, ao qual o planejador dá muito peso quando um LIMIT significa que só parte da saída do nó será consumida.