Guardar las consultas mas lentas en MySQL

Cuando se requiera optimizar nuestra base de datos, en este caso MySQL, de seguro nos encontraremos con el problema de que no podamos distinguir en primera instancia cuales son las consultas que tardan un elevado tiempo en ejecutarse. MySQL incluye una utilidad para este tipo de escenarios, configurando el parametro log_slow_queries estaremos en las condiciones de poder identificar las consultas mas lentas, para asi optimizar los objetos (tablas, indices…) que estén relacionados.

En este caso, las pruebas se hicieron en un servidor Centos 7, para el caso del SO. Windows, solo se tendría que identificar el path donde esta instalado MySQL.

Configuración log_slow_queries

1. Abrimos el archivo my.conf

[root@localhost ~]# vim /etc/my.cnf

2. Editamos los siguientes parametros del archivo my.conf

log_slow_queries = 1; 
long_query_time = 10;
slow_query_log_file = /var/log/mysqld_long_query.log;

3. Reiniciamos el servicio de MySQL

[root@localhost ~]# systemctl restart mysqld

4. Hacemos pruebas de nuestra aplicación y si queremos ver en tiempo real la lectura usamos el comando tail

[root@localhost ~]# tail -f /var/log/mysqld_long_query.log

Definiciones:

  • log_slow_queries: se habilita la función de guardar las consultas lentas
  • long_query_time: en segundos, indica el tiempo mínimo que tarda una consulta para considerarse lenta
  • slow_query_log_file: ruta donde se guardara el registro de las consultas lentas

A partir de ahora se podrá realizar el monitoreo de las consultas que tarden más de los segundos que hayamos indicado en los parametros de configuracion.

Referencia: https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html

Share on FacebookTweet about this on TwitterShare on Google+

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *