Tecnología

Inicio

Tutorial de indexación MySQL

Al igual que un índice de un libro, un índice de MySQL permite encontrar los datos de manera más eficiente. El índice sólo contiene los campos que le interesan en la clasificación, en lugar de todo el registro. Todos los tipos de datos pueden ser índices y puede haber hasta 16 índices por tabla. Los índices pueden ser creados en un prefijo de la columna (los primeros caracteres de cada registro), toda la columna o más de una columna. Incluso puede crear un índice de texto completo.

Crear índice de sintaxis

Los índices se crean normalmente cuando se crea una tabla con el comando CREATE TABLE:

CREAR TABLA ejemplo (INT empid (10), VARCHAR fnombre (20), lname VARCHAR (20), índice (empid))
IR

Sin embargo, puede crear índices en tablas después de que las tablas se crean con esta declaración:

CREAR ÍNDICE DE LA employeeid ejemplo (empid);

Tipos de índices

índices de prefijo se crean usando sólo la parte delantera (prefijo) del valor de la columna. Por ejemplo, si una indexación sobre un apellido, se puede crear un índice sólo en los primeros cinco caracteres del nombre. Las columnas que utilizan el \ "char \", \ "varchar \", \ "\ binario", \ "varbinary \", \ "burbuja \" y \ "texto \" tipos de datos pueden ser indexados con prefijos. El tamaño del prefijo se da en caracteres para los tipos de datos de cadena y bytes para tipos de datos binarios. El tamaño se indica directamente después del nombre de columna en la tabla CREATE y CREATE INDEX. Por ejemplo:

CREAR ÍNDICE DE LA apellidos ejemplo (fname (5))
IR

La designación (5) es la longitud del prefijo en caracteres.

prefijos de columna hacen que el archivo de índice más pequeño que ahorra espacio en disco y, posiblemente, puede acelerar \ declaraciones "Insertar \", ya que estas declaraciones deben actualizar el índice, así como la tabla.

Un índice único crea un índice donde todos los valores del índice son distintas una de otra. Si se agrega un nuevo valor de índice que coincide con un valor existente, se producirá un error. La única excepción a esta regla es el valor nulo. Puede haber múltiples valores NULL en un índice único. índices de prefijo también pueden ser únicos. La sintaxis para crear un índice UNIQUE es:

CREAR apellidos índice único en el ejemplo (fname (5))
IR

los índices de texto completo se crean sobre toda la columna. Los prefijos no están permitidos para los índices de texto completo. La columna debe ser creado con los tipos CHAR, VARCHAR y datos de texto. La sintaxis para crear un índice de texto completo es:

CREAR TEXTO COMPLETO Descripción ÍNDICE DE LA ejemplo (descrip);

Utilizar índices

Sin índices, MySQL se iniciará en el primer registro en una tabla, y leer a través de toda la tabla para encontrar todos los registros pertinentes. Si la tabla tiene un índice, MySQL puede encontrar la posición de los datos en el medio de archivo de datos.

Los índices se utilizan cuando una instrucción tiene una cláusula WHERE, tales como:

empid SELECT ejemplo DONDE lname = 'Smith'
IR

Si hay varios índices para elegir MySQL utilizará el índice que devuelve la menor cantidad de filas. Esto elimina las filas de consideración durante una consulta.

Consultas de unión pueden utilizar índices para encontrar rápidamente las filas en varias tablas. Sin embargo, son sólo es útil si los valores son de los mismos o similares tipos de datos.

Los índices también se utilizan para encontrar los valores MIN () o MAX () dentro de una columna de índice y para ordenar o agrupar una tabla.