No es un bug, es una característica no documentada

16/2/15

Bases de datos. SQL (X). Índices

9:25 Posted by Inazio , No comments
Tipos de índices:
  • Clave primaria. Creado automáticamente cuando se configura la primary key.
  • Ordinario. Índice que se debe crear directamente, por ejemplo para acelerar la búsqueda por el campo nombre, o también se crean automáticamente por cada restricción de clave ajena que cree.
  • Únicos. Se crean con la constraint unique, y permite valores nulos.
  • De texto completo. Para campos char, varchar o text en los que se quiere encontrar índices de una o varias palabras. Por ejemplo al realizar una búsqueda en el B.O.E.
Los índices de clave primaria y los únicos no admiten repetidos.

Para saber los índices de una tabla:

show index from clientes;


¿Cómo se crean los índices?

Clave primaria:
1. Crear una primary key a la hora de crear una tabla

2. Añadir una primary key con un alter table a la tabla


Clave ajena
1. Crear una clave ajena

2. CREATE INDEX nombreIndice ON nombreTabla(campo1 [,campo2...]);

3. CREATE TABLE nombreTabla(campo1 tipoDato, campo2 tipoDato,.. INDEX [nombreIndice] (campo1 [,campo2...]));

4. ALTER TABLE nombreTabla ADD INDEX [nombreIndice] (campo1[,campo2...]);


Únicos
1. CREATE TABLE nombreTabla(campo1 tipoDato, campo2 tipoDato,.. UNIQUE [nombreIndice] (campo1 [,campo2...]));

2. ALTER TABLE nombreTabla ADD UNIQUE [nombreIndice] (campo1,campo2) ...

3. CREATE UNIQUE INDEX nombreIndice ON nombreTabla(campo1[,campo2...]);


De texto completo
1. CREATE TABLE nombreTabla( campo1 TIPO, campo2 TIPO,FULLTEXT [nombreIndice] (campo1 [campo2,...]) );

2. ALTER TABLE nombreTabla ADD FULTEXT [nombreIndice] (campo1[,campo2,...]);

3. CREATE FULLTEXT INDEX nombreIndice ON nombreTabla(campo1[,campo2,...]);



Uso con sentido de los sentidos.

El índice está destinado a reducir la cantidad de tiempo, para evitar una lectura secuencial de la tabla.
Por ejemplo, el campo sexo no sería lógico realizar un índice. Perdemos tiempo buscando en el índice y realizando luego la llamada en la tabla, pudiéndolo hacer de nuevo.

0 comments:

Publicar un comentario