¿Qué es un índice?
Un índice es una clave creada a partir de una o más columnas en la base de datos que acelera la obtención de filas de la tabla o vista. Esta clave ayuda a una base de datos como Oracle, SQL Server, MySQL, etc. a encontrar rápidamente la fila asociada con los valores clave.
Dos tipos de índices son:
- Índice agrupado
- Índice no agrupado
En este tutorial, aprenderá:
- ¿Qué es un índice?
- ¿Qué es un índice agrupado?
- ¿Qué es el índice no agrupado?
- Característica del índice agrupado
- Características de los índices no agrupados
- Un ejemplo de índice agrupado
- Un ejemplo de índice no agrupado
- Diferencias entre el índice agrupado y el índice no agrupado
- Ventajas del índice agrupado
- Ventajas del índice no agrupado
- Desventajas del índice agrupado
- Desventajas del í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, solo 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 forma. Por lo tanto, puede haber un solo índice agrupado para cada tabla. En un RDBMS, por lo general, 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 indicadores 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, mientras que el segundo índice muestra el índice de términos en orden alfabético.
Un índice de no agrupación se define en el campo de no ordenación 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.
DIFERENCIA CLAVE
- El índice de clúster 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 las páginas de datos en los nodos hoja del índice, mientras que el método de índice no agrupado nunca almacena las 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 de disco adicional.
- El índice de clúster ofrece un acceso más rápido a los datos; por otro lado, el índice no agrupado es más lento.
Característica del índice agrupado
- Almacenamiento de datos predeterminado y ordenado
- Use solo una o más de una columna 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 valores clave únicamente
- Punteros a filas de índice agrupadas / de montón
- Permite el acceso a datos secundarios
- Puente a los datos
- Operaciones de exploración de índice y búsqueda de índice
- Puede crear un índice no agrupado para una tabla o vista
- Cada fila de índice en el índice no agrupado almacena el valor de la clave no agrupada y un localizador de filas
Un ejemplo de índice agrupado
En el siguiente ejemplo, SalesOrderDetailID es el índice agrupado. Consulta de muestra para recuperar datos
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
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 ONSalesData (ProductID, OrderQty)
La siguiente consulta se recuperará más rápido en comparación con el índice agrupado.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Diferencias entre el índice agrupado y el índice no agrupado
Parámetros | Agrupado | No agrupado |
---|---|---|
Usar para | 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 los 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 llave | Por defecto, las claves primarias de la tabla son un índice agrupado. | Se puede usar 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 combinaciones. |
Ventajas del índice agrupado
Los pros / beneficios del índice agrupado son:
- Los índices agrupados son una opción ideal para el rango o el grupo con consultas de tipo máximo, mínimo y de recuento
- En este tipo de índice, una búsqueda puede ir directamente a un punto específico en los datos para que pueda 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 las visitas al caché.
Ventajas del índice no agrupado
Las ventajas de utilizar índices no agrupados son:
- Un índice sin agrupamiento le ayuda a recuperar datos rápidamente de la tabla de la base de datos.
- Le ayuda a evitar los gastos 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 muestran las desventajas / desventajas de usar un índice agrupado:
- Muchas inserciones en orden no secuencial
- Un índice agrupado crea muchas divisiones de página constantes, que incluyen páginas de datos y páginas de índice.
- Trabajo adicional para SQL para inserciones, actualizaciones y eliminaciones.
- Un índice agrupado tarda más en actualizar los registros cuando se modifican 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 muestran las desventajas / desventajas de usar un índice no agrupado:
- Un índice no agrupado le ayuda a almacenar datos en un orden lógico, pero no le 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 agrupamiento, se requiere una actualización correspondiente en el índice no agrupado, ya que almacena la clave de agrupamiento.