Autor YouCode - http://www.youcode.com.ar/base-de-datos/consultas-lentas-en-mysql-116
Puede ocurrir que nuestra página tarde mucho en cargarse. Esto puede ser debido a varios factores (conexión, carga del servidor, etc). Pero si la página realiza peticiones a una base de datos MySQL, también puede ralentizarse, debido a que las consultas no estén optimizadas.
Guardando las consultas lentas
MySQL nos brinda la posibilidad de activar un log para las consultas “lentas” al que podremos acceder para localizar que consultas están ralentizando la carga de nuestra página.
Para activar dicho log deberemos acceder al terminal SSH como administrador y acceder al archivo de configuración de MySQL, por lo general ubicado en:
/etc/mysql/my.cnfbuscamos las siguientes líneas:
# Here you can see queries with especially long duration #log_slow_queries = /var/log/mysql/mysql-slow.log #long_query_time = 2
y descomentar:
- log_slow_queries: aqui es donde indicamos la ruta del fichero log.
- long_query_time: aqui es donde indicamos el tiempo en segundos a partir del cual se considerará una consulta lenta.
Guardaremos los cambios y reiniciaremos el servicio MySQL:
/etc/init.d/mysql restartAhora cada consulta sql que tarde más de 2 segundos en ejecutarse será guardada en el fichero de logs.
Recuperando la información de las consultas lentas
En MySQL también disponemos de mysqldumpslow, una herramienta mediante la cual podremos leer el fichero log, filtrar y ordenar los resultados para que podamos consultarlos de manera mas sencilla, mediante una serie de comandos.
Por ejemplo con:
mysqldumpslow -s c -t 10 /var/log/mysql/mysql-slow.logEstamos solicitando las 10 consultas (-t 10) que se han ejecutado mas veces (-s c).
http://www.youcode.com.ar/base-de-datos/consultas-lentas-en-mysql-116