indices en bases de datos my sql

8
UNIVERSIDAD TECNOLOGICA DEL ESTADO DE ZACATECAS UNIDAD ACADEMICA DE PINOS TECNOLOGIAS DE LA INFORMACION Y LA COMUNICACIÓN TUTORIAL SOBRE COMO CREAR, MODIFICAR Y ELIMINAR ÍNDICES EN BASES DE DATOS

Upload: zenon-gallegos-lopez

Post on 10-Aug-2015

17 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Indices en bases de datos  my sql

UNIVERSIDAD TECNOLOGICA DEL ESTADO DE ZACATECAS

UNIDAD ACADEMICA DE PINOS

TECNOLOGIAS DE LA INFORMACION Y LA

COMUNICACIÓN

TUTORIAL SOBRE COMO CREAR, MODIFICAR Y

ELIMINAR ÍNDICES EN BASES DE DATOS

ARTEMIO GALLEGOS LOPEZ

Page 2: Indices en bases de datos  my sql

“3ºA”

ÍndicesLos índices son una forma muy eficiente de ordenar una tabla por uno o varios campos. La ordenación es virtual, es decir, no hay cambio del lugar físico de los registros, sino que se hace en un archivo de índices.Cuando se activa un índice, el acceso de los registros se realiza de acuerdo al orden establecido por el.

Todo índice tiene un nombre, un tipo, una expresión y un sentido. Opcionalmente, puede usar un filtro.

El nombre es arbitrario y puede tener hasta diez posiciones. Hay diferentes tipos de índices, con distintos efectos. El sentido puede ser descendente o ascendente. El filtro discrimina que registros van a ser considerados para construir el índice.

La expresión es el criterio por el cual se van a indexar los registros. Puede consistir en uno o más campos de la tabla, o expresiones más complejas sobre ellos. Por ejemplo, si se quiere ordenar la tabla de artículos por el código, se usara este para construir el índice. Tratándose de una expresión que use un único ampo, este puede ser de cualquier tipo, sin necesidad de transformarlo. Para construir un índice por varios campos o expresiones sobre ellos, hay que crear una expresión final o de tipo carácter.

Page 3: Indices en bases de datos  my sql

Como crear un índice:

Podemos crear el índice a la vez que creamos la tabla,

usando la palabra INDEX seguida del nombre del índice

a crear y columnas a indexar (que pueden ser varias),

ejemplo:

INDEX nombre_indice (columna_indexada,

columna_indexada2...)

La sintaxis es ligeramente distinta según la clase de

índice:

PRIMARY KEY (nombre_columna_1 [,

nombre_columna2...])

UNIQUE INDEX nombre_indice

(columna_indexada1 [, columna_indexada2...])

INDEX nombre_index (columna_indexada1 [,

columna_indexada2...])

Como modificar un índice:

Page 4: Indices en bases de datos  my sql

Para modificar un índice solo hay que seguir los

siguientes pasos:

En el Explorador de objetos, conéctese a una

instancia del Motor de base de datos de SQL

Server y expándala.

Expanda Bases de datos, a continuación, la base

de datos a la que pertenece la tabla y, por

último, Tablas.

Expanda la tabla a la que pertenece el índice y, a

continuación, Índices.

Haga clic con el botón secundario en el índice que

desee modificar y, a continuación, haga clic

en Propiedades.

En el cuadro de diálogo Propiedades del índice,

realice los cambios deseados. Por ejemplo, puede

agregar o quitar una columna de la clave de índice,

o cambiar el valor de una opción de índice.

Como eliminar un índice:

Page 5: Indices en bases de datos  my sql

Si queremos eliminar un índice: ALTER TABLE tabla_nombre DROP INDEX nombre_indice.

CONCLUSION:Los índex permiten mayor rapidez en la ejecución de

las consultas a la base de datos tipo SELECT- WHERE.

Page 6: Indices en bases de datos  my sql

La regla básica es pues crear tus índices sobre aquellas columnas que vayas a usar con una cláusula WHERE, y no crearlos con aquellas columnas que vayan a ser objeto de un SELECT.

El índice no es más que un cursor, o nodo, especial que permite recorrer y desplazarse por el árbol leyendo los registros necesarios y se evita recorrer ramas que no requieren ser exploradas. Sin un índice el motor se vería obligado a recorrer el árbol entero ya que desconoce dónde están los registros. 

Para ilustrarlo más o menos, cada nodo del árbol cuando utiliza índices, tiene almacenada información que le indica donde buscar los registros. En términos concretos, direcciones de memoria. Entonces cuando estamos en el nodo raíz el índice tiene una especie de "resumen", y se va haciendo más específico a medida que nos acercamos a las hojas. 

Haciendo analogía con los libros, tendríamos algo como esto: Capítulo 1 - pág 10 Capítulo 2 - pág 30…

En el nodo raíz. En un nodo del 2do nivel, para el Capítulo 1, veríamos esto: Subcapítulo 1.1 pág 10 Subcapítulo 1.2 pág 12 Subcapítulo 1.3 pág 15... 

Page 7: Indices en bases de datos  my sql

Entonces el índice va trazando la ruta, y uno no tiene que ponerse a leer y/o buscar hoja por hoja. Es cuestión de eficiencia. ¡Imagínate cómo sería encontrar a una persona dentro de una guía telefónica mundial sin un índice! Un posible índice podría ser continente > país > provincia > Departamento > Localidad.