Datapedia
Bases de Datos

Índice (base de datos)

Estructura auxiliar que acelera la búsqueda de registros en una base de datos, a costa de espacio adicional y escrituras más lentas.

SQLRendimientoEstructuras de datos

¿Qué es?

Un índice es una estructura de datos adicional que una base de datos mantiene para poder localizar registros rápidamente, sin tener que recorrer toda la tabla fila por fila. Funciona de forma parecida al índice de un libro: en vez de leer página por página para encontrar un tema, saltás directo a la página indicada.

Internamente, la mayoría de los motores de bases de datos implementan los índices con estructuras como árboles B (B-trees) o tablas hash.

Por qué mejora el rendimiento

Sin índice, una consulta que busca un registro por un campo específico obliga al motor a hacer un “table scan”: revisar cada fila de la tabla. Con un índice sobre ese campo, la búsqueda pasa de ser lineal a logarítmica, lo que es una diferencia enorme en tablas con millones de filas.

El costo de indexar

Los índices no son gratis:

  • Espacio en disco: cada índice es una estructura adicional que hay que almacenar.
  • Escrituras más lentas: cada INSERT, UPDATE o DELETE tiene que actualizar también los índices afectados.
  • Mantenimiento: índices mal elegidos o redundantes pueden degradar el rendimiento en vez de mejorarlo.

Buenas prácticas

Se recomienda indexar las columnas que se usan frecuentemente en cláusulas WHERE, JOIN y ORDER BY, y evitar crear índices sobre columnas que casi no se consultan o que cambian constantemente.