La indexación mejora el rendimiento de la base de datos al minimizar la cantidad de visitas al disco necesarias para completar una consulta. Es una técnica de estructura de datos que se utiliza para localizar y acceder rápidamente a datos en bases de datos. Se utilizan varios campos de la base de datos para generar índices. La clave principal o clave candidata de la tabla está duplicada en la primera columna, que es la clave de búsqueda. Para acelerar la recuperación de datos, los valores también se mantienen ordenados. Cabe destacar que no es necesario ordenar los datos. La segunda columna es la referencia de datos o puntero que contiene un conjunto de punteros que contienen la dirección del bloque de disco donde se puede encontrar ese valor clave en particular.
Estructura del índice en la base de datos
Atributos de indexación
- Tipos de acceso: Esto se refiere al tipo de acceso, como búsqueda basada en valores, acceso por rango, etc.
- Tiempo de acceso: Se refiere al tiempo necesario para encontrar un elemento de datos o un conjunto de elementos en particular.
- Tiempo de inserción: Se refiere al tiempo que se tarda en encontrar el espacio adecuado e insertar nuevos datos.
- Hora de eliminación: Tiempo necesario para encontrar un elemento y eliminarlo, así como para actualizar la estructura del índice.
- Espacio aéreo: Se refiere al espacio adicional requerido por el índice.
Estructura del índice en la base de datos
En general, existen dos tipos de mecanismos de organización de archivos que siguen los métodos de indexación para almacenar los datos:
Organización de archivos secuenciales o archivo de índice ordenado
En este caso, los índices se basan en un orden ordenado de los valores. Estos son generalmente un tipo de mecanismo de almacenamiento rápido y más tradicional. Estas organizaciones de archivos ordenados o secuenciales pueden almacenar los datos en un formato denso o disperso.
- Índice denso
- Para cada valor de clave de búsqueda en el archivo de datos, existe un registro de índice.
- Este registro contiene la clave de búsqueda y también una referencia al primer registro de datos con ese valor de clave de búsqueda.
Índice denso
- Índice escaso
- El registro de índice aparece sólo para unos pocos elementos del archivo de datos. Cada elemento apunta a un bloque como se muestra.
- Para localizar un registro, buscamos el registro de índice con el valor de clave de búsqueda más grande menor o igual al valor de clave de búsqueda que estamos buscando.
- Comenzamos en ese registro señalado por el registro de índice y continuamos con los punteros en el archivo (es decir, secuencialmente) hasta encontrar el registro deseado.
- Número de accesos requeridos=log₂(n)+1, (aquí n=número de bloques adquiridos por archivo de índice)
Índice escaso
Organización de archivos hash
Los índices se basan en que los valores se distribuyen uniformemente en una variedad de segmentos. Los depósitos a los que se asigna un valor están determinados por una función llamada función hash. Existen principalmente tres métodos de indexación:
- Indexación agrupada : Cuando se almacenan más de dos registros en el mismo archivo, este tipo de almacenamiento se conoce como indexación de clústeres. Al utilizar la indexación de clústeres, podemos reducir el costo de la búsqueda, ya que se almacenan varios registros relacionados con el mismo tema en un solo lugar y también permite la unión frecuente de más de dos tablas (registros).
El índice de agrupación se define en un archivo de datos ordenados. El archivo de datos está ordenado en un campo no clave. En algunos casos, el índice se crea en columnas de clave no principal que pueden no ser únicas para cada registro. En tales casos, para identificar los registros más rápido, agruparemos dos o más columnas para obtener los valores únicos y crear un índice a partir de ellos. Este método se conoce como índice de agrupamiento. Básicamente, los registros con propiedades similares se agrupan y se forman índices para estas agrupaciones.
Los estudiantes que estudian cada semestre, por ejemplo, se agrupan. Se clasifican los estudiantes de primer semestre, estudiantes de segundo semestre, estudiantes de tercer semestre, etc.
Indexación agrupada
- Indexación primaria: Este es un tipo de indexación agrupada en la que los datos se ordenan según la clave de búsqueda y la clave principal de la tabla de la base de datos se utiliza para crear el índice. Es un formato predeterminado de indexación donde induce organización secuencial de archivos . Como las claves primarias son únicas y se almacenan de forma ordenada, el rendimiento de la operación de búsqueda es bastante eficiente.
- Indexación no agrupada o secundaria : Un índice no agrupado simplemente nos dice dónde se encuentran los datos, es decir, nos da una lista de punteros virtuales o referencias a la ubicación donde realmente se almacenan los datos. Los datos no se almacenan físicamente en el orden del índice. En cambio, los datos están presentes en los nodos hoja. Por ej. la página de contenido de un libro. Cada entrada nos da el número de página o la ubicación de la información almacenada. Los datos reales aquí (información en cada página del libro) no están organizados, pero tenemos una referencia ordenada (página de contenido) de dónde se encuentran realmente los puntos de datos. Solo podemos tener un orden denso en el índice no agrupado, ya que no es posible un orden disperso porque los datos no están organizados físicamente en consecuencia.
Requiere más tiempo en comparación con el índice agrupado porque se realiza una cantidad de trabajo adicional para extraer los datos siguiendo el puntero. En el caso de un índice agrupado, los datos están directamente presentes delante del índice.

Indexación no agrupada
- Indexación multinivel: Con el crecimiento del tamaño de la base de datos, los índices también crecen. Como el índice se almacena en la memoria principal, un índice de un solo nivel puede alcanzar un tamaño demasiado grande para almacenarlo con múltiples accesos al disco. La indexación multinivel segrega el bloque principal en varios bloques más pequeños para que el mismo pueda almacenarse en un solo bloque. Los bloques externos se dividen en bloques internos que a su vez apuntan a los bloques de datos. Esto se puede almacenar fácilmente en la memoria principal con menos gastos generales.
Indexación multinivel
Ventajas de la indexación
- Rendimiento de consulta mejorado: La indexación permite una recuperación más rápida de datos de la base de datos. La base de datos puede descubrir rápidamente filas que coincidan con un valor específico o una colección de valores generando un índice en una columna, minimizando la cantidad de tiempo que lleva realizar una consulta.
- Acceso eficiente a los datos: La indexación puede mejorar la eficiencia del acceso a los datos al reducir la cantidad de E/S de disco necesaria para recuperar datos. La base de datos puede mantener en la memoria las páginas de datos de las columnas visitadas con frecuencia generando un índice en esas columnas, lo que reduce la necesidad de leer desde el disco.
- Clasificación de datos optimizada: La indexación también puede mejorar el rendimiento de las operaciones de clasificación. Al crear un índice en las columnas utilizadas para ordenar, la base de datos puede evitar ordenar toda la tabla y, en su lugar, ordenar solo las filas relevantes.
- Rendimiento de datos consistente: La indexación puede ayudar a garantizar que la base de datos funcione de manera consistente incluso cuando aumenta la cantidad de datos en la base de datos. Sin indexación, las consultas pueden tardar más en ejecutarse a medida que aumenta el número de filas de la tabla, mientras que la indexación mantiene una velocidad aproximadamente constante.
- Al garantizar que solo se inserten valores únicos en las columnas que se han indexado como únicas, la indexación también se puede utilizar para garantizar la integridad de los datos. Esto evita almacenar datos duplicados en la base de datos, lo que podría generar problemas al realizar consultas o informes.
En general, la indexación en bases de datos proporciona beneficios significativos para mejorar el rendimiento de las consultas, el acceso eficiente a los datos, la clasificación optimizada de los datos, el rendimiento consistente de los datos y la integridad de los datos.
Desventajas de la indexación
- La indexación requiere más espacio de almacenamiento para contener la estructura de datos del índice, lo que podría aumentar el tamaño total de la base de datos.
- Mayor sobrecarga de mantenimiento de la base de datos: Los índices deben mantenerse a medida que se agregan, destruyen o modifican datos en la tabla, lo que podría aumentar la sobrecarga de mantenimiento de la base de datos.
- La indexación puede reducir el rendimiento de inserción y actualización, ya que la estructura de datos del índice debe actualizarse cada vez que se modifican los datos.
- Elegir un índice puede resultar complicado: Puede resultar complicado elegir los índices correctos para una consulta o aplicación específica y puede requerir un examen detallado de los datos y los patrones de acceso.
Características de la indexación
- El desarrollo de estructuras de datos, como árboles B o Las columnas más importantes para las columnas de indexación se seleccionan en función de la frecuencia con la que se utilizan y los tipos de consultas a las que están sujetas. El cardinalidad Se pueden tener en cuenta la selectividad y la unicidad de las columnas de indexación.
- Las bases de datos utilizan varios tipos de índices diferentes, incluidos índices primarios, secundarios, agrupados y no agrupados. Según las necesidades particulares del sistema de base de datos, cada forma de índice ofrece ventajas e inconvenientes.
- Para que el sistema de base de datos funcione de la mejor manera, se requiere un mantenimiento periódico del índice. Según los cambios en los datos y los patrones de uso, el trabajo de mantenimiento implica crear, actualizar y eliminar índices.
- La optimización de consultas de bases de datos implica la indexación, que es esencial. El optimizador de consultas utiliza los índices para elegir la mejor estrategia de ejecución para una consulta particular en función del costo de acceso a los datos y la selectividad de las columnas de indexación.
- Las bases de datos utilizan una variedad de estrategias de indexación, que incluyen índices de cobertura, escaneos de solo índice e índices parciales. Estas técnicas maximizan la utilización de índices para tipos particulares de consultas y acceso a datos.
- Cuando se almacenan bloques de datos no contiguos en un índice, se puede producir una fragmentación del índice, lo que hace que el índice sea menos eficaz. El mantenimiento regular del índice, como la desfragmentación y la reorganización, puede disminuir fragmentación .
Conclusión
La indexación es una técnica muy útil que ayuda a optimizar el tiempo de búsqueda en base de datos consultas. La tabla de indexación de bases de datos consta de una clave de búsqueda y puntero . Hay cuatro tipos de indexación: primaria, agrupación secundaria e indexación multivalor. La indexación primaria se divide en dos tipos, densa y escasa. La indexación densa se utiliza cuando la tabla de índice contiene registros para cada clave de búsqueda. La indexación dispersa se utiliza cuando la tabla de índice no utiliza una clave de búsqueda para cada registro. Usos de la indexación multinivel Árbol B+ . El objetivo principal de la indexación es proporcionar un mejor rendimiento para la recuperación de datos.
Preguntas frecuentes sobre indexación
P.1: ¿Qué es la indexación en bases de datos?
Respuesta:
La indexación es básicamente una técnica que ayuda a reducir el tiempo de búsqueda de una consulta de base de datos o ayuda a acceder más rápido a la base de datos.
pruebas de compatibilidad
P.2: ¿Cuáles son los ejemplos de bases de datos indexadas?
Respuesta:
Algunos ejemplos comunes de bases de datos de indexación son Web of Science, DOAJ (Directorio de revistas de acceso abierto)
Para obtener más detalles, puede consultar Introducción al árbol B+ y Tipos de claves en la base de datos artículo.