En la mayoría de casos, cuando se pone en marcha un servidor de MySQL en producción, se reducen al mínimo todas las variables de logging para minimizar carga en el servidor. Eso esta bien cuando antes de la puesta en marcha se han realizado toda una bateria de pruebas con el logging completo y localizar así los puntos de mejora.
¿Pero que pasa en entornos MySQL que una vez puestos en producción son muy variables? Por ejemplo: un MySQL de un site en el que el volumen de datos cambia dia a dia y en el que se van añadiendo campos, tablas,… No siempre se tienen un entorno de preproducción idéntico en el que rehacer todas las pruebas. Es bastante probable que todos estos cambios en ll esquema y en los datos produzcan nuevas slow queryes y/o querys que no usan indices. Entonces aparece el problema: necesitamos activar el logging en producción sin tener que modificar nuestro my.cnf y sin reiniciar nuestro servidor. Para activar/desactivarlas variables de logging lo podemos hacer de la siguiente forma.
Primero nos conectamos a una consola de MySQL y lanzamos el siguiente comando:
show variables like ‘%log%’;
Así podremos ver un listado con todas las variables de logging y sus valores. Si queremos activar el log de las slow query solo basta con ejecutar la siguiente linea:
set global slow_query_log=ON
De hecho, hasta podemos ir cambiando el destino de esos logs:
set global slow_query_log_file=’/tmp/log_slow_query’
Gracias a estos comandos podemos modificar en caliente algunos parámetros puntualmente, como es el caso de slow_query_log.
Post a Comment