Significado de Índice de base de datos
Sustantivo masculino compuesto. Del latín index, «indicador, señal», y base de datos.
Un índice de base de datos es una estructura auxiliar que ordena por adelantado los valores de una o varias columnas de una tabla, para localizar filas concretas sin recorrerla entera.
Es conceptualmente igual al índice alfabético de un libro: no contiene el texto completo, pero indica en qué página buscarlo sin leer todas las anteriores.
Qué es un índice de base de datos
Sin un índice, una base de datos que busca una fila concreta tiene que examinar la tabla entera, fila por fila, comparando cada una con la condición de búsqueda: un proceso que se vuelve lento cuanto más crece la tabla. Un índice resuelve ese problema construyendo, por adelantado, una estructura ordenada que permite saltar directamente a las filas que interesan, de forma parecida a como un índice alfabético evita leer un libro entero para encontrar un nombre.
Esa velocidad de lectura no es gratuita: el índice ocupa espacio de almacenamiento propio, y cada vez que se inserta, modifica o borra una fila de la tabla, el motor de la base de datos tiene que actualizar también el índice, lo que hace más lentas las operaciones de escritura. Por eso indexar cualquier columna sin criterio no siempre mejora el rendimiento: hay que elegir qué columnas se consultan con más frecuencia y equilibrar la ganancia en lectura frente al coste en escritura y espacio.
Lo diseñan y ajustan los administradores de bases de datos y los desarrolladores de aplicaciones que dependen de consultas rápidas sobre volúmenes de datos grandes.
Origen del término índice de base de datos
De índice, del latín index, «el que indica, el dedo que señala», y base de datos, calco del inglés database ya asentado en español desde la difusión de los sistemas de gestión de bases de datos.
La técnica de indexar apareció junto con los primeros sistemas de gestión de bases de datos, cuando quedó claro que recorrer tablas enteras para cada consulta no era viable a medida que crecía el volumen de información almacenada. El vocabulario y las estructuras concretas de indexación se fueron refinando a lo largo de las décadas siguientes, en paralelo al crecimiento de las bases de datos relacionales.
Tipos de índice de base de datos
| Tipo | En qué consiste |
|---|---|
| Primario | Se construye sobre la columna que identifica cada fila de forma única. |
| Secundario | Se construye sobre una columna distinta a la clave principal, para acelerar búsquedas frecuentes por ese campo. |
| Único | Además de acelerar la búsqueda, impide que se repita un mismo valor en la columna indexada. |
| Compuesto | Combina varias columnas en un mismo índice, útil cuando las consultas filtran habitualmente por esas columnas juntas. |
Ejemplos de uso de índice de base de datos
Crear un índice de base de datos sobre el correo electrónico redujo el tiempo de inicio de sesión de segundos a milisegundos.
El administrador eliminó un índice de base de datos que casi nunca se usaba, porque ralentizaba las inserciones sin aportar ninguna ventaja.
La consulta tardaba minutos hasta que se añadió un índice de base de datos sobre la columna de fecha.
El motor eligió automáticamente qué índice de base de datos usar según la condición de la consulta.
Con millones de registros, la tabla sin ningún índice de base de datos se volvió prácticamente inutilizable para búsquedas.
Sinónimos y palabras relacionadas
Sinónimos: índice, índice de tabla (en un sentido más restringido).
Antónimos: exploración completa de tabla, búsqueda secuencial.
No es lo mismo que:
- Clave primaria: es la columna que identifica cada fila de forma única; suele llevar asociado un índice, pero son conceptos distintos: uno define la identidad, el otro acelera la búsqueda.
- Transacción informática: la transacción agrupa operaciones para que se completen como unidad; el índice acelera cómo se localizan las filas sobre las que actúan esas operaciones. Ver significado de transacción informática.
- Caché: guarda resultados ya calculados para no repetir el trabajo; el índice no guarda resultados, sino una ruta más rápida para encontrar los datos originales. Ver significado de caché.
Preguntas frecuentes sobre el índice de base de datos
¿Por qué no conviene indexar todas las columnas de una tabla?
Porque cada índice añadido ocupa espacio y hace más lentas las operaciones de inserción, modificación y borrado, ya que el motor debe actualizarlo cada vez. Conviene indexar solo las columnas que realmente se consultan con frecuencia.
¿Un índice de base de datos cambia el resultado de una consulta?
No. Un índice solo cambia la velocidad con la que se obtiene el resultado, nunca el resultado en sí: una consulta devuelve las mismas filas exista o no un índice adecuado.
¿Qué diferencia hay entre un índice primario y uno secundario?
El índice primario se construye sobre la columna que identifica de forma única cada fila; el secundario se crea sobre cualquier otra columna que interese consultar con frecuencia, y una tabla puede tener varios índices secundarios a la vez.