- La indexación se utiliza para optimizar el rendimiento de una base de datos minimizando la cantidad de accesos al disco necesarios cuando se procesa una consulta.
- El índice es un tipo de estructura de datos. Se utiliza para localizar y acceder rápidamente a los datos en una tabla de base de datos.
Estructura del índice:
Los índices se pueden crear utilizando algunas columnas de la base de datos.
- La primera columna de la base de datos es la clave de búsqueda que contiene una copia de la clave principal o clave candidata de la tabla. Los valores de la clave principal se almacenan ordenados para que se pueda acceder fácilmente a los datos correspondientes.
- La segunda columna de la base de datos es la referencia de datos. Contiene un conjunto de punteros que contienen la dirección del bloque de disco donde se puede encontrar el valor de la clave particular.
Métodos de indexación
Índices ordenados
Los índices suelen estar ordenados para agilizar la búsqueda. Los índices que están ordenados se conocen como índices ordenados.
Ejemplo : Supongamos que tenemos una tabla de empleados con miles de registros y cada uno de los cuales tiene 10 bytes de longitud. Si sus ID comienzan con 1, 2, 3....y así sucesivamente y tenemos que buscar estudiantes con ID-543.
java int como cadena
- En el caso de una base de datos sin índice, tenemos que buscar el bloque de disco desde el inicio hasta que llegue a 543. El DBMS leerá el registro después de leer 543*10=5430 bytes.
- En el caso de un índice, buscaremos usando índices y el DBMS leerá el registro después de leer 542*2= 1084 bytes que son muy menos en comparación con el caso anterior.
Índice primario
- Si el índice se crea sobre la base de la clave primaria de la tabla, entonces se le conoce como indexación primaria. Estas claves primarias son únicas para cada registro y contienen una relación 1:1 entre los registros.
- Como las claves primarias se almacenan en orden, el rendimiento de la operación de búsqueda es bastante eficiente.
- El índice primario se puede clasificar en dos tipos: índice denso e índice disperso.
índice denso
- El índice denso contiene un registro de índice para cada valor de clave de búsqueda en el archivo de datos. Hace que la búsqueda sea más rápida.
- En esto, la cantidad de registros en la tabla de índice es la misma que la cantidad de registros en la tabla principal.
- Necesita más espacio para almacenar el registro de índice. Los registros de índice tienen la clave de búsqueda y un puntero al registro real en el disco.
índice escaso
- En el archivo de datos, el registro de índice aparece sólo para unos pocos elementos. Cada elemento apunta a un bloque.
- En esto, en lugar de apuntar a cada registro de la tabla principal, el índice apunta a los registros de la tabla principal en un espacio.
Índice de agrupación
- Un índice agrupado se puede definir como un archivo de datos ordenados. A veces, el índice se crea en columnas de clave no principal que pueden no ser únicas para cada registro.
- En este caso, para identificar el registro más rápido, agruparemos dos o más columnas para obtener el valor único y crear un índice a partir de ellas. Este método se llama índice de agrupamiento.
- Los registros que tienen características similares se agrupan y se crean índices para estos grupos.
Ejemplo : supongamos que una empresa contiene varios empleados en cada departamento. Supongamos que utilizamos un índice de agrupación, donde todos los empleados que pertenecen al mismo Dept_ID se consideran dentro de un único grupo, y los punteros de índice apuntan al grupo en su conjunto. Aquí Dept_Id es una clave no única.
El esquema anterior es un poco confuso porque un bloque de disco es compartido por registros que pertenecen a un clúster diferente. Si utilizamos bloques de disco separados para clústeres separados, entonces se llama mejor técnica.
Índice secundario
En la indexación escasa, a medida que crece el tamaño de la tabla, también crece el tamaño del mapeo. Estas asignaciones generalmente se guardan en la memoria principal para que la búsqueda de direcciones sea más rápida. Luego, la memoria secundaria busca los datos reales basándose en la dirección obtenida del mapeo. Si el tamaño del mapeo crece, la búsqueda de la dirección en sí se vuelve más lenta. En este caso, el índice disperso no será eficiente. Para superar este problema, se introduce la indexación secundaria.
¿Qué hace que una PC sea rápida?
En la indexación secundaria, para reducir el tamaño del mapeo, se introduce otro nivel de indexación. En este método, inicialmente se selecciona el rango enorme para las columnas de modo que el tamaño del mapeo del primer nivel sea pequeño. Luego, cada rango se divide en rangos más pequeños. El mapeo del primer nivel se almacena en la memoria primaria, de modo que la búsqueda de direcciones es más rápida. El mapeo del segundo nivel y los datos reales se almacenan en la memoria secundaria (disco duro).
Por ejemplo:
- Si desea encontrar el registro del rollo 111 en el diagrama, buscará la entrada más alta que sea menor o igual a 111 en el índice de primer nivel. Obtendrá 100 en este nivel.
- Luego, en el segundo nivel de índice, nuevamente alcanza el máximo (111).<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
- Así es como se realiza una búsqueda en este método. La inserción, actualización o eliminación también se realiza de la misma manera. =>