Inicio › Tecnología › Índice De Base De Datos
Un índice de base de datos es una estructura auxiliar, normalmente basada en un árbol B o en una tabla hash, qué se construye sobre una o varias columnas de una tabla para permitir localizar filas concretas sin tener qué recorrer secuencialmente todos los registros de esa tabla, lo qué se conoce como escaneo completo. De forma parecida al índice alfabético al final de un libro, qué permite ir directamente a la página donde aparece un término sin leer el libro entero, el índice de base de datos acelera drásticamente las consultas de búsqueda y ordenación a costa de ocupar espacio adicional en disco y de ralentizar ligeramente las operaciones de inserción y actualización, porque cada cambio en los datos indexados obliga también a actualizar la estructura del índice.
Es como el índice alfabético de un libro grueso: en vez de leer todas las páginas para encontrar un nombre, vas directamente al índice, qué te dice en qué página está. Una base de datos con millones de filas usa un índice para encontrar rápidamente los datos qué buscas, en lugar de revisar fila por fila hasta dar con el resultado correcto.
Una tienda online con una tabla de un millón de pedidos crea un índice sobre la columna del correo del cliente porque el servicio de atención al cliente busca constantemente pedidos por ese campo; sin el índice, cada búsqueda recorrería secuencialmente el millón de filas y tardaría segundos, mientras qué con el índice la base de datos localiza los pedidos correspondientes casi instantáneamente. El mismo equipo evita indexar columnas qué casi nunca se usan en búsquedas, porque cada índice adicional ralentiza las inserciones de nuevos pedidos y ocupa espacio de almacenamiento sin aportar beneficio real.
Porque cada índice adicional obliga a la base de datos a actualizar esa estructura auxiliar en cada inserción, actualización o borrado de fila, lo qué ralentiza esas operaciones de escritura y consume espacio en disco adicional sin beneficio si esa columna rara vez se usa en búsquedas o filtros.
La clave primaria identifica de forma única cada fila de la tabla y suele generar automáticamente un índice asociado; un índice se puede crear también sobre cualquier otra columna o combinación de columnas qué se consulte con frecuencia, sin qué esa columna tenga qué ser única.
Ejecutando un análisis del plan de ejecución de la consulta, disponible en la mayoría de motores SQL, qué muestra si la base de datos está haciendo un escaneo completo de la tabla en lugar de usar un índice, señal habitual de qué conviene añadir uno sobre la columna del filtro o del cruce implicado.