Un índice de base de datos es una estructura de datos que mejora la velocidad de las operaciones en una tabla.

Cada vez que la aplicación ejecute una consulta de base de datos, la base de datos buscará todas las filas de tu tabla para encontrar las que coincidan con la solicitud. A medida que crecen las tablas de la base de datos, es necesario inspeccionar cada vez un número mayor de filas que a la vez, disminuye el rendimiento general de la base de datos y, respectivamente, de la aplicación.

Los índices de MySQL resuelven este problema tomando datos de una columna en tu tabla y almacenándolos alfabéticamente en una ubicación separada llamada índice. Puedes encontrar más sobre esto aquí.

Se pueden crear índices fácilmente a través de phpMyAdmin. A continuación podrás ver un ejemplo sobre tales índices:

Digamos que has creado una tabla llamada “muestra” con dos filas – “numero” y “empleado“. Si ejecutas un comando SQL básico como:

SELECT * FROM muestra WHERE numero = 4;

MySQL comprobará todos los registros y sólo devolverá el que tenga su valor de número establecido en 4.

Sin embargo, si tienes varios miles de entradas, por ejemplo, esta será una consulta lenta. En este caso tenemos un campo único – “number”. Por lo tanto, podemos crear un índice para ello. La indexación creará un registro interno que se guardará en el servicio MySQL. Se puede hacer con la siguiente consulta:

 ALTER TABLE muestra ADD INDEX (numero);

Una vez establecido este índice, la próxima vez que desees obtener la información para el empleado número 4, el servicio irá directamente a él utilizando el índice y devolverá la información mucho más rápido.

Este es sólo un ejemplo muy básico. Para bases de datos más grandes, la diferencia en el tiempo de carga puede ser significativa. La indexación de la base de datos puede reducir drásticamente el tiempo de carga de tus consultas.

Hay otra consulta que puedes utilizar para aumentar la velocidad de carga de tu base de datos:

OPTIMIZE TABLE sample;