Vous êtes sur la page 1sur 5

EDERTH ALFONSO GARCIA ARAGON | 131160079

4.4 MANEJO
DE INDICES.
INGENIERIA EN SISTEMAS
COMPUTACIONALES
4.4.1 Manejo de ndices.

TECNOLOGICO NACIONAL DE MXICO


Instituto Tecnolgico de Pochutla

ndices en MySQL.
Qu es un ndice?
Un ndice es un puntero a una fila de una determinada tabla de nuestra
base de datos. Pero qu significa exactamente un puntero? Pues bien, un
puntero no es ms que una referencia que asocia el valor de una determinada
columna (o el conjunto de valores de una serie de columnas) con las filas que
contienen ese valor (o valores) en las columnas que componen el puntero.
Los ndices mejoran el tiempo de recuperacin de los datos en las consultas
realizadas contra nuestra base de datos. Pero los ndices no son todo ventajas, la
creacin de ndices implica un aumento en el tiempo de ejecucin sobre aquellas
consultas de insercin, actualizacin y eliminacin realizadas sobre los datos
afectados por el ndice (ya que tendrn que actualizarlo). Del mismo modo, los
ndices necesitan un espacio para almacenarse, por lo que tambin tienen un
coste adicional en forma de espacio en disco.
La construccin de los ndices es el primer paso para realizar
optimizaciones en las consultas realizadas contra nuestra base de datos. Por ello,
es importante conocer bien su funcionamiento y los efectos colaterales que
pueden producir.
Un ndice (o KEY, o INDEX) es un grupo de datos que MySQL asocia con
una o varias columnas de la tabla. En este grupo de datos aparece la relacin
entre el contenido y el nmero de fila donde est ubicado.
Los ndices -como los ndices de los libros- sirven para agilizar las consultas
a las tablas, evitando que MySQL tenga que revisar todos los datos disponibles
para devolver el resultado.
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):
INDEX nombre_indice (columna_indexada, columna_indexada2...)
La sintaxis es ligeramente distinta segn la clase de ndice:

Km. 5.35 Carretera San Pedro Pochutla - Puerto ngel, Colonia El Colorado, C.P. 70902 , San Pedro
Pochutla, Oaxaca.
Tels.: 958 119 61 79 / 958 107 04 32

TECNOLOGICO NACIONAL DE MXICO


Instituto Tecnolgico de Pochutla

PRIMARY KEY (nombre_columna_1 [,nombre_columna2...]) UNIQUE INDEX


nombre_indice (columna_indexada1 [,columna_indexada2 ...]) INDEX
nombre_index (columna_indexada1 [,columna_indexada2...])
Para qu se Utilizan?
MySQL emplea los ndices para encontrar las filas que contienen los valores
especficos de las columnas empleadas en la consulta de una forma ms rpida.
Si no existiesen ndices, MySQL empezara buscando por la primera fila de la tabla
hasta la ltima buscando aquellas filas que cumplen los valores establecidos para
las columnas empleadas en la consulta. Esto implica que, cuantas ms filas tenga
la tabla, ms tiempo tardar en realizar la consulta. En cambio, si la tabla contiene
ndices en las columnas empleadas en la consulta, MySQL tendra una referencia
directa hacia los datos sin necesidad de recorrer secuencialmente todos ellos.
En general, MySQL emplea los ndices para las siguientes acciones:

Encontrar las filas que cumplen la condicin WHERE de la consulta cuyas


columnas estn indexadas.

Para recuperar las filas de otras tablas cuando se emplean operaciones de


tipo JOIN. Para ello, es importante que los ndices sean del mismo tipo y
tamao ya que aumentar la eficiencia de la bsqueda. Por ejemplo: una
operacin de tipo JOIN sobre dos columnas que tengan un ndice del tipo
INT (10).

Disminuir el tiempo de ejecucin de las consultas con ordenacin (ORDER


BY) o agrupamiento (GROUP BY) si todas las columnas presentes en los
criterios forman parte de un ndice.

Si la consulta emplea una condicin simple cuya columna de la condicin


est indexada, las filas sern recuperadas directamente a partir del ndice,
sin pasar a consular la tabla.

Km. 5.35 Carretera San Pedro Pochutla - Puerto ngel, Colonia El Colorado, C.P. 70902 , San Pedro
Pochutla, Oaxaca.
Tels.: 958 119 61 79 / 958 107 04 32

TECNOLOGICO NACIONAL DE MXICO


Instituto Tecnolgico de Pochutla

Qu Tipos de ndices Existen?


A continuacin, vamos a analizar los distintos tipos de ndices que se
pueden crear y las condiciones que deben cumplir cada uno de ellos:

INDEX (NON-UNIQUE): este tipo de ndice se refiere a un ndice normal, no


nico. Esto implica que admite valores duplicados para la columna (o
columnas) que componen el ndice. No aplica ninguna restriccin especial a
los datos de la columna (o columnas) que componen el ndice, sino que se
emplea simplemente para mejorar el tiempo de ejecucin de las consultas.

UNIQUE: este tipo de ndice se refiere a un ndice en el que todas las


columnas deben tener un valor nico. Esto implica que no admite valores
duplicados para la columna (o columnas) que componen el ndice. Aplica la
restriccin de que los datos de la columna (o columnas) deben tener un
valor nico.

PRIMARY: este tipo de ndice se refiere a un ndice en el que todas las


columnas deben tener un valor nico (al igual que en el caso del ndice
UNIQUE) pero con la limitacin de que slo puede existir un ndice
PRIMARY en cada una de las tablas. Aplica la restriccin de que los datos
de la columna (o columnas) deben tener un valor nico.

FULLTEXT: estos ndices se emplean para realizar bsquedas sobre texto


(CHAR, VARCHAR y TEXT). Estos ndices se componen por todas las
palabras que estn contenidas en la columna (o columnas) que contienen el
ndice. No aplica ninguna restriccin especial a los datos de la columna (o
columnas) que componen el ndice, sino que se emplea simplemente para
mejorar el tiempo de ejecucin de las consultas. Este tipo de ndices slo
estn soportados por InnoDB y MyISAM en MySQL 5.7.

SPATIAL: estos ndices se emplean para realizar bsquedas sobre datos


que componen formas geomtricas representadas en el espacio. Este tipo
de ndices slo estn soportados por InnoDB y MyISAM en MySQL 5.7.

Km. 5.35 Carretera San Pedro Pochutla - Puerto ngel, Colonia El Colorado, C.P. 70902 , San Pedro
Pochutla, Oaxaca.
Tels.: 958 119 61 79 / 958 107 04 32

TECNOLOGICO NACIONAL DE MXICO


Instituto Tecnolgico de Pochutla

Es importante destacar que todos estos ndices pueden construirse


empleando una o ms columnas. Del mismo modo, el orden de las columnas que
se especifique al construir el orden es relevante para todos los ndices menos para
el FULLTEXT (ya que este ndice mira en TODAS las columnas que componen el
ndice).

Km. 5.35 Carretera San Pedro Pochutla - Puerto ngel, Colonia El Colorado, C.P. 70902 , San Pedro
Pochutla, Oaxaca.
Tels.: 958 119 61 79 / 958 107 04 32

Vous aimerez peut-être aussi