Discutiremos las diversas categorías de índices en el servidor SQL de Microsoft. Los principales tipos de índices son: índices agrupados, índices no agrupados, índices btree e índices únicos.
Tipos de índices en Microsoft SQL Server
Índice agrupado
Un índice agrupado define la disposición física real de los datos dentro de una tabla. Cada tabla del servidor SQL puede tener solo un índice agrupado, y el índice debe crearse en una columna única y no nula o un conjunto de columnas. Dado que un índice agrupado determina el diseño físico de una tabla, a menudo se usa para tablas que se buscan con frecuencia en función de su clave principal u otros valores únicos.
Primero creemos una tabla e insertemos los valores en ella utilizando los siguientes comandos SQL:
Insertar en los clientes (Customer_id, Customer_Name, Customer_Email, Customer_phone)Veamos un ejemplo de un índice agrupado. Para crear un índice agrupado en la columna "Customer_ID", podemos usar la siguiente consulta SQL:
Crear un índice clúster idx_customers_customer_name en clientes (customer_name);Esto crea un índice agrupado en la columna Customer_Name donde los datos en la tabla se ordenan físicamente en función de los valores en la columna Customer_Name.
Para obtener a todos los clientes cuyo nombre comienza con la letra "A", podemos usar la siguiente consulta SQL:
SELECCIONAR *Producción:
customer_id customer_name customer_email customer_phoneÍndice no agrupado
Es un tipo de índice que no afecta el orden físico de los datos en una tabla. Un índice no agrupado produce una estructura de datos independiente que almacena la clave de índice y el puntero a la fila de datos asociada en la tabla. Esto permite que las consultas localen rápidamente las filas de datos relevantes en función de los valores en el índice. A diferencia de los índices agrupados, las tablas en el servidor SQL pueden tener múltiples índices no agrupados, y el índice se puede crear en cualquier columna o conjunto de columnas en la tabla.
Un ejemplo de un índice no agrupado es el siguiente:
Crear índice no agrupado IDX_Customer_EmailEsto crea un índice no agrupado en la columna "Customer_Email" donde los datos en la tabla permanecen físicamente desordenados, pero el índice almacena una copia ordenada de los datos en la columna "Customer_Email".
Para obtener a todos los clientes cuya dirección de correo electrónico incluye el "Gmail.com ”dominio, podemos usar la siguiente consulta SQL:
SELECCIONAR *Producción:
customer_id customer_name customer_email customer_phoneAquí, ningún cliente tiene un correo electrónico que contenga el "Gmail.com ”dominio, por lo que el campo de salida está vacío.
Índice de Btree
Un índice btree es una forma de organizar los datos en una estructura que se asemeja a un árbol. Cada nodo en el árbol contiene un rango de valores clave, y cada nodo de hoja contiene un puntero a la fila de datos correspondiente. Los índices BTree se usan comúnmente en el servidor SQL porque permiten una búsqueda y clasificación eficientes de grandes cantidades de datos. Son especialmente útiles para consultas que involucran búsquedas de rango o operaciones de clasificación. Por ejemplo: salarios, números de teléfono, etc.
Un ejemplo de creación de un índice BTree en la columna "Customer_phone" es el siguiente:
Crear índice idx_customer_phoneEsto crea un índice de árbol B en la columna "Customer_phone" donde los datos en el índice se almacenan en una estructura similar a un árbol, con cada nodo que contiene un rango de valores y punteros a los otros nodos.
Ahora, queremos recuperar a todos los clientes cuyo número de teléfono comienza con el código de área de "555" utilizando la siguiente consulta SQL:
SELECCIONAR *Producción:
customer_id customer_name customer_email customer_phoneÍndice único
Es un tipo de índice que asegura que no hay dos filas en una tabla que tengan el mismo valor clave. Esto puede ser útil para hacer cumplir la integridad de los datos y evitar los registros duplicados en una tabla.
Un ejemplo de crear un índice único en la columna "Customer_Email" es el siguiente:
Crear índice idx_customer_email_newEsto crea un índice único en la columna "Customer_Email" donde el índice aplica una restricción que garantiza que no hay dos filas en la tabla pueden tener el mismo valor en la columna "Customer_Email".
Ahora, inserte un nuevo cliente en la mesa con el "[email protected] ”Correo electrónico y recuperarlo utilizando la siguiente consulta SQL:
Insertar en los clientes (Customer_id, Customer_Name, Customer_Email, Customer_phone)Producción:
customer_id customer_name customer_email customer_phoneConclusión
Los índices juegan un papel importante en la optimización del rendimiento de las bases de datos de SQL Server. Comprender los diferentes tipos de índices puede ayudar a los administradores de bases de datos a elegir el tipo de índice más apropiado para sus aplicaciones. Al crear y mantener efectivamente los índices, las empresas pueden garantizar que sus bases de datos funcionen de manera eficiente, lo que les permite tomar decisiones basadas en datos y proporcionar un mejor servicio a sus clientes.