Comprobamos que, efectivamente, tenemos el log de querys lentas desactivado.
# mysqladmin var -uusario -ppassword |grep log_slow
| log_slow_queries | OFF
Editamos de la siguiente forma el archivo de configuración de MySQL, normalmente ubicado en /etc/my.cnf
[mysqld]
log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 1
log-queries-not-using-indexes
log-slow-queries, establece el lugar físico del archivo de log
long_query_time, establece a partir de que cantidad de segundos se considera lenta una query
log-queries-not-using-indexes, también logueará las queries lentas que no utilizen índices
Creamos el fichero mysq-slow-queries y ajustamos permisos
# touch /var/log/mysql-slow-queries.log
# chown mysql.root /var/log/mysql-slow-queries.log
Y reiniciamos el servidor
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start
Cuando tengamos algo de información útil en el archivo, podemos atacar directamente a las consultas más lentas, filtrandolas por la cantidad de tiempo empleado usando mysqldumpslow
# mysqldumpslow -t 10 /var/log/mysql-slow-queries.log
Actualizado: se me olvidó poner que hemos de modificar el my.cnf en el apartado [mysqld]. Gracias a Sergi de Dezain 🙂
existe algun progama que tome el mysql-slow-queries.log y tire explains de cada query? sino existe estoy pensando crear uno :p
saludos
Hola Leandro
a qué te refieres con “tirar explains”?
hola ruben, perdona pero me colgué con esto, la idea es revisar los queries con EXPLAIN EXTENDED “query”; estuve investigando el mysql_slow_log_parser http://www.retards.org/projects/mysql/
y la idea es revisar los queries y que tire explains del log, y formule un informe sobre c/ query, es solo una idea con mucho para desarrollar y pensar, pero para los DBAs de MySQL sería interesante, creo
Saludos
Hola Leandro
pues sí, sería interesante. Este proyecto mismo del log parser para MySQL no lo conocía. Gracias por la aportación.
Saludos
Hola rubén quería hacerte una consulta, hay alguna forma de filtrar el mysql slow query log por base de datos? Tengo muchas bases sobre un servidor y solo quiero analizar las de una sola base
Molt interessant, sí senyor!