¿Qué es un covering index?
Opciones
- Un índice con todas las columnas que necesita una consulta, sin leer la tabla (Opción correcta)
- Un índice creado sobre todas las tablas de la base de datos
- Un índice que además funciona como backup de la tabla
- Un índice protegido con una contraseña para cada usuario
Respuesta
Un índice que incluye todas las columnas que necesita una consulta, de modo que la base de datos responde desde el índice sin leer la tabla
Por qué
Normalmente un índice encuentra la ubicación de la fila y luego la base de datos va a la tabla a leer las demás columnas (un paso extra). Si el propio índice contiene todas las columnas que la consulta selecciona y filtra, la tabla no se toca (un "index-only scan"), lo que es mucho más rápido.
Ejemplo: la consulta SELECT email FROM users WHERE country = 'ES' queda cubierta por un índice en (country, email).
El coste: índices más grandes y escrituras más lentas.
Recuerda
Covering index = el índice por sí solo responde la consulta.