Indices De Sql
Enviado por papatatis • 4 de Octubre de 2014 • 441 Palabras (2 Páginas) • 209 Visitas
Indices en SQL, INDEX
La restricción INDEX en SQL fue diseñada para optimizar nuestras consultas de bases de datos.
Supongamos que hemos creado una tabla de estudiantes con 10 registros y necesitamos consultar solo aquellos estudiantes que su nombre comience por la letra H. La sentencia SELECTtendría la siguiente forma:
SELECT ID, NOMBRE
FROM ESTUDIANTE
WHERE NOMBRE LIKE 'H%';
Este sería su resultado:
Resultado de las filas consultadas
Sencillo!, Hernan era el único de los 10 estudiantes cuyo nombre empezaba con la letra H. Pero, ¿que sucedería si nuestra tabla tuviese 100.000 registros?, ¿no crees que esta consulta se demoraría una gran cantidad de tiempo?
Claro que sí!, una tabla con esa cantidad de registros representa un gran volumen de búsqueda.
Pero es aquí donde entran los índices de SQL y la restricción INDEX. Ya que los índices guardan la estructura de las tablas en un orden particular, asignando un identificador a cada fila y así crear grupos de clasificación, de acuerdo a las columnas que posea la tabla. Esta característica permite que el motor de bases de datos acelere la búsqueda de las filas.
Podemos compararlo con el índice de un libro, donde las páginas están divididas en capítulos. Imagina al gestor de bases de datos como una persona que mira el índice del libro y cuando encuentra donde esta ubicada la información que le interesa, entonces se dirige directamente a esa página sin recorrer todo el libro.
Definición
CREATE INDEX nombreIndice
ON nombreTabla (columna1, columna2, ..., columnan);
Por lo general los SGBD crean un índice por defecto para la llave primaria de la tabla y optimizar la búsqueda mediante este atributo. Pero si deseas agregar un índice a otra columna puedes hacerlo.
Ahora agregaremos el índice a la columna Nombre:
CREATE INDEX IDX_NOMBRE
ON ESTUDIANTE(NOMBRE);
Normalmente los índices que se crean son de tipo B-TREE ó Balanced Tree(Árbol de balance). Este tipo de índice divide en distintos grupos todas las filas de una tabla y dependiendo el tipo de consulta (atributo de consulta), el SGBD toma una ruta para encontrar aquellos registros requeridos.
A continuación vemos una representación gráfica de un B-TREE para la búsqueda de los nombres que comienzan por la letra H.
B-TREE para el escaneo de la tabla estudiantes
Como vemos el SGBD primero se dirigirá al grupo de nombres entre A-M luego de allí buscará el grupo G-I, donde encontrará a nuestro registro Hernan Gomez, el cual comienza por la letra H. Esta segmentación permite realizar la búsqueda
...