Uno de los problemas más comunes de carga en el servicio MySQL es debido a que hay consultas SQL que tardan un tiempo excesivo en ejecutarse y completarse.
Existe la opción de activar el logging para este tipo de consultas, de modo que podamos hacer debug e identificar las consultas lentas (Slow Queries) y optimizarlas. A continuación configuraremos nuestro MySQL para poder loguear las slow-queries.
1.- El primer paso es activar el logging, para ello revisamos primero si está activado:
mysqladmin var |grep log_slow_queries
log_slow_queries OFF
En caso de estar desactivado lo activamos, añadiendo lo siguiente al fichero de configuración de mysql (my.cnf):
log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 5
log-queries-not-using-indexes
log-slow-queries será el fichero en el cual se logearán las consultas lentas.
long_query_time será el tiempo a partir del cual se considera una query lenta, en este caso 5 segundos.
log-queries-not-using-indexes lo activaremos si queremos loguear las consultas que no utilicen índices (útil pues suelen ser las más lentas y menos optimizadas).
2.- Creamos el fichero del log y le asignamos el propietario correspondiente:
touch /var/log/mysql-slow-queries.log
chown mysql.root /var/log/mysql-slow-queries.log
3.- Reiniciamos el servicio para que los cambios surtan efecto:
/etc/init.d/mysql restart
Analicemos una consulta de ejemplo mayor de 5 segundos, que ha sido logueada como slow query:
# Time: 080213 13:54:17
# User@Host: XXX_phpbb1[XXX_phpbb1] @ localhost []
# Query_time: 11 Lock_time: 0 Rows_sent: 6 Rows_examined: 8776
SELECT t.forum_id, t.topic_id, p.post_time
Tenemos los siguientes campos:
El comando mysqldumpslow nos permite visualizar y determinar las consultas más lentas, ejemplo:
mysqldumpslow -t 5 /var/log/mysql-slow-queries.log
Con dicho comando sacaremos por pantalla las 5 consultas más lentas parseando el log mysql-slow-queries.log,
Comentarios recientes
8 weeks 1 day ago
22 weeks 2 days ago
27 weeks 5 days ago
36 weeks 3 days ago
44 weeks 2 days ago
51 weeks 5 days ago
1 year 3 days ago
1 year 12 weeks ago
1 year 12 weeks ago
1 year 15 weeks ago