post icon

Analizar las consultas lentas de MySQL

Es típico hoy día ver aplicaciones con tiempos de respuestas extremadamente lentos, no precisamente por que tiene mucha concurrencia, ni por la mala infraestructura de red, ni otros, sino por la falta de optimización de los query´s SQL. Este tipo de problemas escapa al error de sintaxis, al error lógico incluso, ya que el query cumple con su cometido, pero de una muy mala manera, técnicamente tumba el servidor por mucho tiempo y lo deja inutilizable.

Solucionar éstos problemas no siempre es sencillo, ya que hallar que consultas producen estos problemas cuesta, y más aún por qué lo hacen. Lo que voy escribiendo en el artículo no es precisamente para solucionarlos, ya que es muy dependiente del caso, contexto, estructura y otros factores, pero al menos nos dará una idea de donde debemos echar el ojo.

Para ello en MySQL, podemos habilitar la opción de guardar registros de las consultas que tarden en ejecutarse más tiempo de lo que esperamos.

El entorno de configuración en este caso es sobre un servidor GNU/Linux típico

Editamos el fichero my.cnf, generalmente ubicado en:

1
vim /etc/my.cnf

En este fichero, bajo el bloque [mysqld]

1
2
log-slow-queries
long_query_time = 5 #valor en segundo que queremos sea el techo para determinar que es un query lento

Sólo nos queda reiniciar el servicio y comenzará a guardar los registros deseados si ocurren

1
/etc/init.d/mysqld restart
1
/etc/init.d/mysql restart

Para ver el log lo pueden hacer con cualquier editor o visor de texto claro en la siguiente ruta (siempre y cuando no hayan modificado la configuración por defecto)

1
/var/lib/mysql/slow_queries.log

Comentarios desde Facebook:

Trackbacks/Pingbacks

  1. Tweets that mention Analizar las consultas lentas de MySQL | DevTroce.com -- Topsy.com UNITED STATES - 3 Agosto 2010

    […] This post was mentioned on Twitter by Ronald Riveros, DevTroce. DevTroce said: Analizar las consultas lentas de #MySQL: Es típico hoy día ver aplicaciones con tiempos de… http://goo.gl/fb/fa7sS […]

Responder