LearnReally
by learnreallyin SpanishCurated

Available inSpanishEnglishFrenchGermanHindiPortugueseRussian

SQL y bases de datos para entrevistas

Escribe sin ayuda un join, un GROUP BY o una consulta con función de ventana correctos, y luego lee lo que el motor hizo con ella: el plan de EXPLAIN, el índice que eligió, la anomalía de aislamiento a la que queda expuesta tu transacción. Para ingenieros de backend ante una ronda de bases de datos; se asume el dominio de la sintaxis SQL, no se enseña. Ochenta y cinco tarjetas, desde la semántica de los joins y la lógica de NULL hasta los B-trees, MVCC y los niveles de aislamiento; replicación y sharding quedan para Entrevista de diseño de sistemas.

85cards
Try it first
Contents

Card 1 of 85

El segundo número de cost=0.00..8.30 está tapado. ¿Qué estima ese número?

El coste total de devolver todas las filas del nodo

Hints

No son milisegundos: las unidades son las del propio planificador.

Pregúntate qué minimiza el planificador cuando no hay LIMIT.

Source

El par de costes es coste de arranque y coste total, ambos en unidades arbitrarias del planificador, escaladas por tradición para que una lectura secuencial de página valga 1.0 (manual de PostgreSQL, «Using EXPLAIN»). Dos consecuencias que conviene decir en voz alta: un coste solo se compara con el de otro plan de la misma consulta, nunca con milisegundos; y el coste de un nodo superior ya incluye el de todos sus hijos, así que la línea de arriba es la consulta entera. Se confunde con el primer número, el coste de arranque, al que el planificador da mucho peso cuando un LIMIT significa que solo se consumirá parte de la salida del nodo.