Activar Mysql Log Slow Queries

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 🙂

6 thoughts on “Activar Mysql Log Slow Queries

  1. Leandro Bertalot says:

    existe algun progama que tome el mysql-slow-queries.log y tire explains de cada query? sino existe estoy pensando crear uno :p
    saludos

  2. Leandro Bertalot says:

    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

  3. Leandro Bertalot says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *