¿Cuál es el principal coste de añadir un índice a una tabla?
Opciones
- Consultas SELECT más lentas en la columna indexada
- Más almacenamiento y escrituras más lentas, porque el índice debe actualizarse (Opción correcta)
- La tabla queda bloqueada para siempre tras crear el índice
- Las foreign keys se desactivan en la tabla indexada
Respuesta
Más almacenamiento e INSERT/UPDATE/DELETE más lentos porque el índice debe mantenerse
Por qué
Un índice es una estructura ordenada extra (normalmente un B-tree) que permite a la base de datos encontrar filas rápido, como el índice al final de un libro.
Pero cada vez que insertas, actualizas o eliminas una fila, todos los índices de esa tabla también deben actualizarse, y los índices ocupan disco.
Así que indexa las columnas por las que filtran, unen u ordenan tus consultas importantes, no todas las columnas.
Recuerda
Los índices aceleran las lecturas y frenan las escrituras.