Un índice es una estructura de datos que permite
acceder a diferentes filas de una misma tabla a través de un campo (o
campos clave).
Un índice permite un acceso mucho más rápido a los datos.
Introducción a los índices.
Para entender lo que es un índice debemos saber primero
como se almacena la información internamente en las tablas de una base
de datos. Cada tabla se divide en páginas de datos, imaginemos un libro,
podriamos escribirlo en "una sola hoja enorme" al estilo pergamino
egipcio, o bien en páginas a las que podemos acceder rápidamente a
traves de un índice. Está idea es la que se aplica en el mundo de las
bases de datos, la información esta guardada en una tabla (el libro) que
tiene muchas hojas de datos (las páginas del libro), con un índice en
el que podemos buscar la información que nos interesa.
Si queremos buscar la palabra zapato en un diccionario , ¿qué hacemos?
-
Leemos todo el diccionario hasta encontrar la palabra, con lo que nos habremos leido el diccionario enterito (¡seguro que aprenderiamos un montón!)
-
Buscamos en el índice en que página está la letra z, y es en esa página donde buscamos.
Ni que decir tiene que la opción dos es la correcta, y
es de este modo como se utiliza un índice en las bases de datos, se
define el ínidice a través de un campo (o campos) y es a partir de este
punto desde donde de busca.
Los índices se actualizan automáticamente
cuando realizamos operaciones de escritura en la base de datos. Este es
un aspecto muy importante de cara al rendimiento de las operaciones de
escritura, ya que además de escribir los datos en la tabla se escribiran
también en el indice. Un número elevado de índices hará más lentas
estas operaciones. Sin embargo, salvo casos excepcionales, el beneficio
que aportan los indices compensa (de largo) esta penalización.
Creación de índices
La creación de índices, como ya hemos visto, permite acelerar las consultas que se realizan en la base de datos.
Las sentencias de SQL para manipular índices son:
CREATE INDEX; |
CREATE [UNIQUE] INDEX <nombre_indice> ON <nombre_tabla>( <nombre_campo> [ASC | DESC] {,<nombre_campo> [ASC | DESC]}) ); |
La pálabra clave UNIQUE especifica que que no pueden existir claves duplicadas en el índice.
ASC | DESC especifican el criterio de ordenación elegido, ascendente o descendente, por defecto es ascendente.
ASC | DESC especifican el criterio de ordenación elegido, ascendente o descendente, por defecto es ascendente.
Ejemplo: En el apartado
dedicado a la definición de tablas creamos la tabla tClientes, este
ejmplo crea un índice único en el campo NIF. Esto nos permitirá buscar
mucho mas rápido por el campo NIF y nos asegurará que no tengamos dos
NIF iguales.
CREATE UNIQUE INDEX UIX_CLIENTES_NIF ON tCLIENTES (NIF); |
Las claves primarias son índices.
Los nombres de los índices deben ser únicos.
Para eliminar un índice debemos emplear la sentencia DROP INDEX.
DROP INDEX <nombre_tabla>.<nombre_indice>; |
DROP INDEX tCLIENTES.UIX_CLIENTES_NIF;
No hay comentarios:
Publicar un comentario