Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un índice sirve para buscar datos rápidamente, y no tener que recorrer toda la
tabla secuencialmente en busca alguna fila concreta.
Si una columna es índice de una tabla, al buscar por un valor de esa columna,
iremos directamente a la fila correspondiente. La búsqueda así es mucho más
óptima en recursos y más rápida en tiempo.
Actualizar una tabla con índices tarda más tiempo porque también hay que
actualizar los índices, así que solo se deben poner índices en las columnas por las
que buscamos frecuentemente.
Create Index
Los índices nos ayudan a obtener datos de las tablas en forma más rápida.
Utilicemos un ejemplo para ilustrar este punto: Digamos que estamos interesados
en leer en un libro de jardinería acerca de cómo cultivar pimientos. En vez de leer
el libro desde el comienzo hasta que encontremos una sección sobre pimientos,
es mucho más rápido para nosotros ir a la sección índice al final del libro, ubicar
qué páginas contienen la información sobre pimientos, y luego dirigirnos a esas
páginas directamente. Al dirigirnos al índice primero ahorramos tiempo y
seguramente es el método más eficiente para ubicar la información que
necesitamos.
El mismo principio se aplica para la obtención de datos desde una tabla de base
de datos. Sin un índice, el sistema de base de datos lee a través de toda la tabla
(este proceso se denomina “escaneo de tabla”) para localizar la información
deseada. Con el índice correcto en su lugar, el sistema de base de datos puede
entonces primero dirigirse al índice para encontrar de dónde obtener los datos, y
luego dirigirse a dichas ubicaciones para obtener los datos necesarios. Esto es
mucho más rápido.
Tabla Customer
Nombre de Columna Tip de Datos
First_Name char(50)
Last_Name char(50)
Address char(50)
City char(50)
Country char(25)
Birth_Date datetime
Si deseamos crear un índice tanto en Ciudad como en País, ingresaríamos,
Por favor note que la sintaxis exacta para CREATE INDEX puede ser distinta
según las diferentes bases de datos. Debería consultar con su manual de
referencia de base de datos para obtener la sintaxis precisa.
Utilice la sentencia CREATE INDEX para crear un índice en una o más columnas
de una tabla y, si lo desea, para crear un clúster de la tabla física en el orden del
índice. Esta sección describe algunas de las opciones disponibles cuando crea
índices. Si desea obtener más información sobre la sentencia CREATE INDEX,
consulte el manual IBM Informix Guide to SQL: Syntax.
Suponga que crea la tabla cliente:
CREATE TABLE cliente
(
cust_num SERIAL(101) UNIQUE
fname CHAR(15),
lname CHAR(15),
company CHAR(20),
address1 CHAR(20),
address2 CHAR(20),
city CHAR(15),
state CHAR(2),
zipcode CHAR(5),
phone CHAR(18)
);Copiar
La sentencia siguiente muestra cómo crear un índice en la columna lname de la
tabla cliente:
CREATE INDEX lname_index ON cliente (lname);
Todos los índices de la base de datos activa se almacenan en la tabla del sistema
"sysindexes", podemos consultar dicha tabla tipeando:
go
Índice Único
Un índice único es usado para mantener la integridad de la información de las
columnas sobre las cuales es creado al asegurar que no hay valores duplicados
en el índice clave, y la filas de la tabla, sobre la cual el índice es creado. Esto
aseguro que la información será única basada en el índice clave, dependiendo de
las características de la información que es almacenada en la columna del índice
clave o la lista de columnas. Si el índice Único clave consiste en una columna, el
SQL Server garantizará que cada valor en el índice clave es único. Por otro lado,
el índice Único clave consiste en múltiples columnas, cada combinación de valores
en ese índice clave debería ser único. Puedes definir ambos el índice Agrupado y
No Agrupado para ser único, siempre que la información en esos índices clave
sean únicos.
Para dejar ese índice, deberíamos dejar la restricción que creó el índice, usando la
declaración ALTER TABLE…DROP CONSTRAINT T-SQL de abajo:
ALTER TABLE DiffIndexTypesDemo DROP CONSTRAINT UQ_Name
El Índice Único puede también ser creado manualmente, fuera de la restricción, al
especificar la palabra clave UNIQUE en la declaración de creación de índice
Agrupado o No Agrupado, como en la declaración CREATE INDEX T-SQL de
abajo:
Ahora, si tratamos de crear el índice Único otra vez en esa tabla, la declaración
CREATE INDEX va a fallar, como la tabla ya ha duplicado valores en la columna
Nombre como se muestra abajo:
Podemos incluir otra columna en el índice Único clave, para aplicar la singularidad
de combinación de las dos columnas, a diferencia de aplicarlo solamente en la
columna Nombre. El CREATE INDEX de abajo será usado para crear un índice
único que aplica la singularidad de la combinación de columnas ID y Nombre: