Índices

Definición de Índices

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
;

DROP INDEX;

La sintaxis para la creación de indices es la siguiente:


CREATE
[UNIQUE] INDEX
ON (
[ASC | DESC]
{, [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.

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
.;

Ejemplo:Para eliminar el índice creado anteriormente.


DROP INDEX
tCLIENTES.UIX_CLIENTES_NIF;

Comentarios

Entradas populares de este blog

Actualizar las estadísticas

Errores de conexión de Oracle

Operaciones con fechas