Desarrollador de Bases de Datos y SQL: pregunta de entrevista
¿Cómo funcionan los índices compuestos?
Un índice compuesto ordena entradas por su secuencia de columnas, por lo que sirve predicados con las columnas más a la izquierda y puede cubrir orden o campos seleccionados. El orden debe seguir consultas reales.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Un índice compuesto ordena las entradas por la primera columna, luego por la segunda dentro de valores iguales de la primera, y así sucesivamente. El motor puede usarlo para un predicado sobre la primera columna sola, sobre la primera y la segunda, etc., pero no sobre la segunda sola, porque esos valores están dispersos por el árbol. El orden de columnas sigue por tanto a las consultas: predicados de igualdad primero, luego la columna usada para rango u ordenación, y las columnas necesarias solo en el SELECT pueden añadirse o incluirse para que el índice cubra la consulta sin acceder a la tabla. Un índice compuesto bien ordenado suele sustituir a varios de una sola columna.
Ejemplo
Para SELECT * FROM orders WHERE customer_id = ? AND status = ? ORDER BY created_at DESC LIMIT 20, un índice sobre (customer_id, status, created_at DESC) permite al motor saltar al cliente y estado y leer las veinte primeras filas ya ordenadas. Un índice sobre (created_at, customer_id) recorrería todos los pedidos recientes de todos los clientes; un índice solo sobre (status) coincidiría con millones de filas.
Errores frecuentes
- Crear (b, a) cuando cada consulta filtra por a y solo a veces por b.
- Suponer que un índice sobre (a, b) sirve a una consulta que filtra solo por b.
- Añadir un índice compuesto por consulta y pagar diez índices que se solapan.
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.