Diferencia entre índice agrupado y no agrupado

Requisito previo: consultas SQL en índices agrupados y no agrupados 

1. Índice 
agrupado: el índice agrupado se crea solo cuando se cumplen las dos condiciones siguientes: 

  1. Los datos o el archivo que está moviendo a la memoria secundaria deben estar en orden secuencial o ordenado.
  2. Debe haber un valor clave, lo que significa que no puede tener valores repetidos. 
     

Cada vez que aplique la indexación agrupada en una tabla, solo realizará la clasificación en esa tabla. Puede crear solo un índice agrupado en una tabla como clave principal. El índice agrupado es igual que el diccionario, donde los datos están ordenados alfabéticamente. 

En el índice agrupado, el índice contiene un puntero para bloquear pero no datos directos. 
 

Ejemplo de índice agrupado: 
si aplica la clave principal a cualquier columna, automáticamente se convertirá en índice agrupado. 
 

create table Student
( Roll_No int primary key, 
Name varchar(50), 
Gender varchar(30), 
Mob_No bigint );

insert into Student
values (4, 'ankita', 'female', 9876543210 );

insert into Student 
values (3, 'anita', 'female', 9675432890 );

insert into Student 
values (5, 'mahima', 'female', 8976453201 ); 

En este ejemplo, Roll no es una clave principal, actuará automáticamente como un índice agrupado. 
La salida de este código se producirá en orden creciente de rollo no. 

Roll_No Nombre Género Mob_No
3 anita femenino 9675432890
4 ankita femenino 9876543210
5 mahima femenino 8976453201

Solo puede tener un índice agrupado en una tabla, pero puede tener un índice agrupado en varias columnas, y ese tipo de índice se denomina índice compuesto. 

2. Índice no agrupado: 
el índice no agrupado es similar al índice de un libro. El índice de un libro consiste en el nombre del capítulo y el número de página, si desea leer cualquier tema o capítulo, puede ir directamente a esa página utilizando el índice de ese libro. No es necesario pasar por todas y cada una de las páginas de un libro. 

Los datos se almacenan en un lugar y el índice se almacena en otro lugar. Dado que los datos y el índice no agrupado se almacenan por separado, puede tener varios índices no agrupados en una tabla. 

En el índice no agrupado, el índice contiene el puntero a los datos. 

Ejemplo de índice no agrupado – 

create table Student
( Roll_No int primary key, 
Name varchar(50), 
Gender varchar(30), 
Mob_No bigint );

insert into Student 
values (4, 'afzal', 'male', 9876543210 );

insert into Student 
values (3, 'sudhir', 'male', 9675432890 );

insert into Student 
values (5, 'zoya', 'female', 8976453201 );

create nonclustered index NIX_FTE_Name
on Student (Name ASC); 

Aquí, roll no es una clave principal, por lo que automáticamente hay un índice agrupado. 
Si queremos aplicar un índice no agrupado en la columna NOMBRE (en orden ascendente), se creará la nueva tabla para esa columna. 

Salida antes de aplicar el índice no agrupado: 
 

Roll_No Nombre Género Mob_No
3 sudhir masculino 9675432890
4 afzal masculino 9876543210
5 zoya femenino 8976453201

Salida después de aplicar el índice no agrupado: 

Nombre Dirección de fila
Afzal 3452
Sudhir 5643
zoya 9876

La dirección de fila se usa porque, si alguien quiere buscar sudhir en los datos, al usar la dirección de fila, irá directamente a esa dirección de fila y podrá obtener los datos directamente. 

Diferencia entre el índice agrupado y no agrupado: 

ÍNDICE AGRUMENTADO ÍNDICE NO AGRUMENTADO
El índice agrupado es más rápido. El índice no agrupado es más lento.
El índice agrupado requiere menos memoria para las operaciones. El índice no agrupado requiere más memoria para las operaciones.
En el índice agrupado, el índice es el dato principal. En el índice no agrupado, el índice es la copia de los datos.
Una tabla solo puede tener un índice agrupado. Una tabla puede tener varios índices no agrupados.
El índice agrupado tiene la capacidad inherente de almacenar datos en el disco. El índice no agrupado no tiene la capacidad inherente de almacenar datos en el disco.
Punteros de almacenamiento de índices agrupados para bloquear no datos. El índice no agrupado almacena tanto el valor como un puntero a la fila real que contiene los datos.
En el índice agrupado, los Nodes de hoja son datos reales en sí mismos. En los Nodes de hoja de índice no agrupados, no son los datos reales en sí mismos, sino que solo contienen columnas incluidas.
En el índice agrupado, la clave agrupada define el orden de los datos dentro de la tabla. En el índice no agrupado, la clave de índice define el orden de los datos dentro del índice.
Un índice agrupado es un tipo de índice en el que los registros de la tabla se reordenan físicamente para que coincidan con el índice. Un índice no agrupado es un tipo especial de índice en el que el orden lógico del índice no coincide con el orden físico almacenado de las filas en el disco.
El tamaño del índice agrupado es grande. El tamaño del índice no agrupado es comparativamente más pequeño.
Las claves primarias de la tabla por defecto son índice agrupado. La clave compuesta cuando se usa con restricciones únicas de la tabla actúa como un índice no agrupado.

Publicación traducida automáticamente

Artículo escrito por snigdha_yambadwar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *