MySQL dispone de la opción «Slow Query Log», esta opción nos permite registrar todas las peticiones a la base de datos que se consideren lentas, por defecto, esta deshabilitado en la configuración de MySQL.
En este artículo vamos a aprender cómo activar esta opción y de esta manera corregir peticiones a la base de datos que pueden ocasionar que nuestro sitio web tenga una carga lenta o ejecución de código lento.
Un sitio web lento ahuyenta a nuestros visitantes e incluso puede perjudicar nuestro posicionamiento en buscadores.
Para comenzar debemos comprobar las variables configuradas en el servidor de base de datos para asegurarnos el estado actual de la configuración.
Revisando las variables de MySQL
Para revisar el estado de las variables escribimos lo siguiente:
shell> mysql
mysql> show variables;
Como resultado tendremos la lista de todas las variables en MySQL, buscamos la línea:
log_slow_queries
El estado seguramente está en Off, caso contrario ya lo tienes activado y no necesitas seguir este tutorial.
Para continuar debes salir de mysql y volver al shell
mysql> exit
Activando log slow queries
Para activar log_slow_queries debemos modificar nuestro archivo my.cnf ubicado en /etc/mysql/my.cnf o en el caso de un VPS en /etc/my.cnf
Desde el shell:
shell> nano /etc/mysql/my.cnf
Agregaremos estas líneas:
[mysqld]
set-variable=long_query_time= 5
log-slow-queries=/var/log/mysql/log-slow-queries.log
Nota: set-variable=long_query_time= 5 registrará todas las peticiones que tomen más de 5 segundos en ser completadas.
Salvamos los cambios y ahora tenemos que crear el archivo donde guardaremos el log o registro de peticiones lentas, par ello:
mkdir /var/log/mysql
touch /var/log/mysql/log-slow-queries.log
chown mysql.mysql -R /var/log/mysql
Para finalizar último debemos reiniciar el servicio MySQL:
shell> service mysql restart
Puedes revisar el estado de log_slow_queries desde MySQL como lo hicimos al comienzo del tutorial.
Para revisar los logs simplemente debes ejecutar desde la línea de comandos el siguiente código:
shell> cat /var/log/mysql/log-slow-queries.log
Tienes problemas de carga con tu servidor? Podemos ayudarte, revisa nuestros planes de VPS Hosting o servidores dedicados nuestro soporte técnico especializado te sorprenderá!
Todo perfecto, excepto que en la consola en lugar de «mysql» puse «mysql -u usuario -p» a continuación me pidió la contraseña.
Saludos, al hacerlo de esa manera debes utilizar el usuario «root»