Diferencia entre índice agrupado y no agrupado

Diferencia clave entre índice agrupado y no agrupado

  • Un índice agrupado es un tipo de índice que ordena las filas de datos de la tabla según sus valores clave, mientras que el índice no agrupado almacena los datos en una ubicación y los índices en otra ubicación.
  • El índice agrupado almacena páginas de datos en los nodos hoja del índice, mientras que el método de índice no agrupado nunca almacena páginas de datos en los nodos hoja del índice.
  • El índice de clúster no requiere espacio en disco adicional, mientras que el índice no agrupado requiere espacio en disco adicional.
  • El índice agrupado ofrece un acceso a los datos más rápido; por otro lado, el índice no agrupado es más lento.
Diferencia entre índice agrupado y no agrupado
Índice agrupado versus no agrupado

¿Qué es un índice?

Un índice es una clave creada a partir de una o más columnas de la base de datos que acelera la recuperación de filas de la tabla o vista. Esta clave ayuda a una base de datos como Oracle, SQL Server, MySQL, etc. para encontrar rápidamente la fila asociada con los valores clave.

Dos tipos de índices son:

  • Índice agrupado
  • Índice no agrupado

¿Qué es un índice agrupado?

El índice de clúster es un tipo de índice que ordena las filas de datos de la tabla según sus valores clave. En la base de datos, sólo hay un índice agrupado por tabla.

Un índice agrupado define el orden en el que se almacenan los datos en la tabla, que se puede ordenar de una sola manera. Por lo tanto, solo puede haber un índice agrupado para cada tabla. En un RDBMS, normalmente, la clave principal le permite crear un índice agrupado basado en esa columna específica.

¿Qué es el índice no agrupado?

Un índice no agrupado almacena los datos en una ubicación y los índices en otra ubicación. El índice contiene punteros a la ubicación de esos datos. Una sola tabla puede tener muchos índices no agrupados, ya que un índice del índice no agrupado se almacena en diferentes lugares.

Por ejemplo, un libro puede tener más de un índice, uno al principio que muestra el contenido de una unidad de libro. wise mientras que el segundo índice muestra el índice de términos en orden alfabético.
Un índice no agrupado se define en el campo no ordenado de la tabla. Este tipo de método de indexación le ayuda a mejorar el rendimiento de las consultas que utilizan claves que no están asignadas como clave principal. Un índice no agrupado le permite agregar una clave única para una tabla.

Característica del índice agrupado

  • Almacenamiento de datos predeterminado y ordenado
  • Utilice solo una o más columnas para un índice
  • Le ayuda a almacenar datos e indexar juntos
  • Fragmentación
  • Operaciones
  • Escaneo de índice agrupado y búsqueda de índice
  • Búsqueda de claves

Características de los índices no agrupados

  • Almacenar solo valores clave
  • Punteros a filas de índice agrupado/montón
  • Permite el acceso a datos secundarios
  • Puente a los datos
  • Operaciones de escaneo de índice y búsqueda de índice
  • Puede crear un índice no agrupado para una tabla o vista.
  • Cada fila del índice no agrupado almacena el valor clave no agrupado y un localizador de filas.

Índice agrupado versus no agrupado en SQL: diferencias clave

parámetros Agrupados no agrupado
Uso Puede ordenar los registros y almacenar el índice agrupado físicamente en la memoria según el orden. Un índice no agrupado le ayuda a crear un orden lógico para las filas de datos y utiliza punteros para archivos de datos físicos.
Método de almacenamiento Le permite almacenar páginas de datos en los nodos hoja del índice. Este método de indexación nunca almacena páginas de datos en los nodos hoja del índice.
Tamaño El tamaño del índice agrupado es bastante grande. El tamaño del índice no agrupado es pequeño en comparación con el índice agrupado.
Acceso a datos Más rápido Más lento en comparación con el índice agrupado
Espacio adicional en disco No requerido Requerido para almacenar el índice por separado.
tipo de clave De forma predeterminada, las claves primarias de la tabla son un índice agrupado. Se puede utilizar con una restricción única en la tabla que actúa como clave compuesta.
Caracteristica principal Un índice agrupado puede mejorar el rendimiento de la recuperación de datos. Debe crearse en columnas que se utilizan en uniones.

Un ejemplo de índice agrupado

En el siguiente ejemplo, SalesOrderDetailID es el índice agrupado. Consulta de muestra para recuperar datos

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Ejemplo de un índice agrupado

Un ejemplo de índice no agrupado

En el siguiente ejemplo, se crea un índice no agrupado en OrderQty y ProductID de la siguiente manera

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Ejemplo de un índice no agrupado

El following La consulta se recuperará más rápido en comparación con el índice agrupado.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Ejemplo de un índice no agrupado

Ventajas del índice agrupado

Las ventajas y beneficios del índice agrupado son:

  • Los índices agrupados son una opción ideal para consultas de tipo rango o grupo con máximo, mínimo y recuento.
  • En este tipo de índice, una búsqueda puede ir directamente a un punto específico de los datos para que puedas seguir leyendo secuencialmente desde allí.
  • El método de índice agrupado utiliza un mecanismo de ubicación para ubicar la entrada del índice al comienzo de un rango.
  • Es un método eficaz para búsquedas de rango cuando se solicita un rango de valores clave de búsqueda.
  • Le ayuda a minimizar las transferencias de páginas y maximizar los accesos al caché.

Ventajas del índice no agrupado

Las ventajas de utilizar índices no agrupados son:

  • Un índice no agrupado le ayuda a recuperar datos rápidamente de la tabla de la base de datos.
  • Le ayuda a evitar los costos generales asociados con el índice agrupado.
  • Una tabla puede tener varios índices no agrupados en RDBMS. Por lo tanto, se puede utilizar para crear más de un índice.

Desventajas del índice agrupado

A continuación se detallan las desventajas y desventajas de utilizar el índice agrupado:

  • Muchas inserciones en orden no secuencial.
  • Un índice agrupado crea muchas divisiones de páginas constantes, que incluyen páginas de datos y páginas de índice.
  • trabajo extra para SQL para inserciones, actualizaciones y eliminaciones.
  • Un índice agrupado tarda más en actualizar los registros cuando se cambian los campos del índice agrupado.
  • Los nodos hoja contienen principalmente páginas de datos en el índice agrupado.

Desventajas del índice no agrupado

A continuación se detallan las desventajas/desventajas de utilizar un índice no agrupado:

  • Un índice no agrupado le ayuda a almacenar datos en un orden lógico pero no permite ordenar filas de datos físicamente.
  • El proceso de búsqueda en índices no agrupados se vuelve costoso.
  • Cada vez que se actualiza la clave de agrupación, se requiere una actualización correspondiente en el índice no agrupado, ya que almacena la clave de agrupación.