Un índice acelera la recuperación de datos. Sin él, la base de datos escanea cada fila para encontrar registros coincidentes. Con un índice, salta directamente a las filas relevantes. El índice es una estructura de datos independiente que asigna valores a ubicaciones. El índice de un libro funciona de la misma manera. Se busca un término y se encuentra el número de página. No es necesario leer todas las páginas para encontrarlo. La base de datos hace lo mismo.
Los índices tienen un costo. Ocupan espacio. Ralentizan las inserciones, actualizaciones y eliminaciones porque el índice también debe actualizarse. Cada escritura se vuelve más costosa. El beneficio es una lectura más rápida. Para cargas de trabajo con muchas lecturas, los índices son esenciales. Para cargas de trabajo con muchas escrituras, demasiados índices perjudican el rendimiento. Elegir qué columnas indexar requiere comprender los patrones de consulta. Las columnas utilizadas en cláusulas WHERE, condiciones JOIN y cláusulas ORDER BY son buenas candidatas. Las columnas con baja cardinalidad, como un indicador booleano, son malas candidatas porque el índice no restringe mucho la búsqueda. Los índices compuestos cubren varias columnas y pueden servir consultas que filtran por varios campos. El orden de las columnas en un índice compuesto importa. La base de datos puede usar un índice compuesto para consultas en la columna principal, pero no solo en las columnas secundarias. El diseño de índices es una compensación. El objetivo es acelerar las consultas importantes sin ralentizar las escrituras más de lo necesario.
Tipos de índice
- Árbol B: valor predeterminado para la mayoría de las bases de datos, ideal para consultas de rango.
- Hash: búsquedas de igualdad rápidas, sin soporte de rango.
- Mapa de bits: columnas de baja cardinalidad, consultas analíticas
- Texto completo — búsqueda de texto
- Compuesto: varias columnas en un mismo índice.
Un índice es un atajo. Sacrifica velocidad de lectura en lugar de velocidad de escritura y almacenamiento. Úsalo donde la lectura sea más importante.
Comments (3)
Leave a comment