Blog de Gonzalo

SLOW QUERIES

Uno de los problemas más comunes de mysql son las consultas de sql que tardan demasiado tiempo en ejecutarse.
Un opción es analizar la query con la opción EXPLAIN. Otra opción es activar el logging para analizar cuales son las consultas más lentas, de modo que se pueda hacer un debug para identificar las consultas lentas (slow queries) y optimizarlas.
El primer paso es activar el logging.
Para saber si está activado hay que ejecutar en consola:


# mysqladmin var |grep log_slow_queries | log_slow_queries | OFF |


En caso de estar desactivado lo activamos, añadiendo lo siguiente al fichero de configuración de mysql (my.cnf):

log-slow-queries=/var/log/mysql-slow-queries.log long_query_time = 5 log-queries-not-using-indexes


log-slow-queries será el fichero en el cual se logearán las consultas lentas, y long_query_time será el tiempo a partir del cual se considera una query lenta, en este caso 5 segundos. log-queries-not-using-indexes lo activaremos si queremos logear las consultas que no utilicen índices.
Por último comentar el comando mysqldumpslow, que nos será de extrema utilidad para determinar las consultas más lentas, ejemplo:

mysqldumpslow -t 5 /var/log/mysql-slow-queries.log


Con dicho comando se mostraran por pantalla por pantalla las 5 consultas más lentas parseando el log mysql-slow-queries.log y así saber que consultas son las más lentas para optimizarlas.

Compartir en twitter