Optimización de índices en MySQL


Normalmente la primera opción para la optimización de una base de datos en MySQL (y en la mayoría de bases de datos) consiste en la optimización de los índices.
Aquí os dejo una serie de consejos para la creación de índices:
  • Indexar sólo las columnas necesarias: sólo se deben indexar las columnas sobre las que se realizan búsquedas, es decir, aquellas que se utilizan en una cláusula WHERE o en una JOIN.
  • No abusar de los índices: los índices deben ser actualizados, y mantenidos cuando se realizan INSERT's, UPDATE's y DELETE's, por lo que ralentiza el sistema. Es decir, más índices más lento. Sólo hay que crear los necesarios.
  • Utilizar índices únicos: los índices funcionan mejor sobre columnas con valores únicos y empeoran en columnas que tienen muchos duplicados.
  • Utilizar índices cortos: Hay que tener especial cuidado al utilizar índices sobre campos CHAR. Para ello, no es conveniente indexar columnas enteras, si la mayor parte de los valores son únicos dentro de los 10 o 20 primeros caracteres, basta con indexar esa cantidad de caracteres.
  • Considerar el tipo de comparaciones a realizar en un registro: los índices se utilizan con los operadores <, <=, =, >=, >, BETWEEN y LIKE, no así con las funciones. Por lo tanto, si se utiliza la función, por ejemplo, STRCMP() para la comparación de cadenas, es innecesaria la creación del índice.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.