The world's most popular open source database
MySQL utiliza un optimizador basado en costos para determinar la mejor manera de resolver una consulta. En muchos casos, MySQL puede calcular el mejor plan de consulta posible, pero a veces MySQL no tiene suficiente información sobre los datos a mano y tiene que hacer suposiciones “educadas” sobre los datos.
Em ñps casps em qie MySQL no hace lo "adecuado", las herramientas que usted tiene disponible para ayudar a MySQL son:
Utilice la sentencia EXPLAIN para obtener información sobre
como MySQL procesa una consulta. Para utilizarlo, simplemente añada la palabra clave
EXPLAIN al inicio de su sentencia SELECT:
mysql> EXPLAIN SELECT * FROM t1, t2 WHERE t1.i = t2.i;
EXPLAIN está explicado con más detalle en
Sección 7.2.1, “Sintaxis de EXPLAIN (Obtener información acerca de un SELECT)”.
Utilice ANALYZE TABLE
para actualizar las definiciones
de claves de la tabla analizada. Consulte Sección 13.5.2.1, “Sintaxis de nombre_de_tablaANALYZE TABLE”.
Utilice FORCE INDEX sobre la tabla analizada para decirle a
MySQL que los escaneos de tabla son muy costosos comparado con utilizar el índice dado.
Consulte Sección 13.2.7, “Sintaxis de SELECT”.
SELECT * FROM t1, t2 FORCE INDEX (index_for_column) WHERE t1.col_name=t2.col_name;
USE INDEX y IGNORE
INDEX podrían también ser útiles.
STRAIGHT_JOIN a nivel global y de tabla. Consulte
Sección 13.2.7, “Sintaxis de SELECT”.
Puede adaptar variables globales o específicas de hilos de ejecución. Por ejemplo, inicie
mysqld con la opción --max-seeks-for-key=1000
o utilice SET max_seeks_for_key=1000 para decirle al optimizador que asuma que ninguna rastreo de claves genera más de 1000 búsquedas. Consulte Sección 5.3.3, “Variables de sistema del servidor”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

