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.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Backend