Tipos de índices
- Clave primaria. Se crea automáticamente.
- Ordinario. Creado por el usuario para acelerar búsquedas.
- Únicos. Mediante la restricción
UNIQUE. Admiten nulos. - De texto completo. Para campos
CHAR,VARCHARyTEXT.
Los índices de clave primaria y los únicos no admiten repetidos.
El índice está destinado a reducir la cantidad de tiempo, para evitar una lectura secuencial.
Para ver los índices de una tabla:
show index from clientes;
Creación de índices
Índices ordinarios
Mediante CREATE INDEX:
CREATE INDEX nombreIndice ON nombreTabla(campo1 [,campo2...]);
Dentro de la definición de la tabla:
CREATE TABLE nombreTabla(
campo1 tipoDato,
campo2 tipoDato,
INDEX [nombreIndice] (campo1 [,campo2...])
);
Mediante ALTER TABLE:
ALTER TABLE nombreTabla ADD INDEX [nombreIndice] (campo1[,campo2...]);
Índices únicos
Dentro de la definición de la tabla:
CREATE TABLE nombreTabla(
campo1 tipoDato,
campo2 tipoDato,
UNIQUE [nombreIndice] (campo1 [,campo2...])
);
Mediante ALTER TABLE:
ALTER TABLE nombreTabla ADD UNIQUE [nombreIndice] (campo1,campo2);
Mediante CREATE UNIQUE INDEX:
CREATE UNIQUE INDEX nombreIndice ON nombreTabla(campo1[,campo2...]);
Índices de texto completo
Dentro de la definición de la tabla:
CREATE TABLE nombreTabla(
campo1 TIPO,
campo2 TIPO,
FULLTEXT [nombreIndice] (campo1 [campo2,...])
);
Mediante ALTER TABLE:
ALTER TABLE nombreTabla ADD FULLTEXT [nombreIndice] (campo1[,campo2,...]);
Mediante CREATE FULLTEXT INDEX:
CREATE FULLTEXT INDEX nombreIndice ON nombreTabla(campo1[,campo2,...]);
Recomendaciones
Los índices deben estar orientados a los campos en los que se realizan búsquedas frecuentemente. Por ejemplo, el campo sexo no sería lógico para realizar un índice, ya que una lectura secuencial de la tabla puede resultar más eficiente que la sobrecarga del índice.