Desarrollador Backend: pregunta de entrevista
¿Cómo funcionan los índices de base de datos?
Un índice de base de datos acelera lecturas que califican evitando un scan completo, a cambio de almacenamiento y escrituras más lentas. Elígelo según predicados, joins, ordenación y selectividad reales, y verifica el plan.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La mayoría de los índices relacionales son B-trees: copias ordenadas de una o más columnas con punteros a las filas. El planificador usa uno cuando el predicado coincide con las columnas iniciales y el índice es lo bastante selectivo como para que leerlo más las filas coincidentes gane a recorrer la tabla. Cada índice se mantiene en insert, update y delete, así que cada uno cambia velocidad de lectura por coste de escritura y almacenamiento. Los índices cubrientes que incluyen todas las columnas que toca una consulta evitan por completo el acceso a la tabla.
Ejemplo
Para WHERE tenant_id = ? ORDER BY created_at DESC, un índice compuesto que empieza por tenant_id puede evitar scan y ordenación de filas no relacionadas. Comparar EXPLAIN ANALYZE antes y después muestra si el planificador pasó de un scan secuencial con sort a un index scan sin paso de ordenación.
Errores frecuentes
- Indexar una columna de baja cardinalidad como un booleano y esperar una mejora.
- Añadir índices para cada consulta sin medir la ralentización de escritura en una tabla caliente.
- Envolver la columna indexada en una función dentro del WHERE, de modo que el índice no puede usarse.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.