Depurando MySQL log slow queries

MySQL tiene algunas opciones que facilitan el depurado de las query's. Una query lenta implica un problema de rendimiento importante y si esa query se realiza con frecuencia, podemos tener un servidor de MySQL con una carga importante. Para detectar este tipo de query's complejas e intentar buscarle solución, MySQL añade la opción 'log_slow_queries' que no es más que un fichero sobre el cual se volcan aquellas query's pesadas para el servidor, para así poder revisarlas a posteriori. Sobre cómo habilitar esto ya hablamos hace tiempo aquí. El problema está en la cantidad de información que dicho fichero recibe. En caso de que haya una query que le lleve más de 'long_query_time' automáticamente ya se inserta en fichero de log aunque realmente pueda no ser pesada, sino que sea pesada por la carga momentánea que tiene el equipo. Por norma general, son pesadas aquellas query's que devuelven una gran cantidad de datos o las que tienen unas sentencias de filtrado muy complejas de evaluar. En este caso, vamos a ver cómo evitar que se inserten en el fichero de slow-query's todas aquellas sentencias que no devuelvan más de X valores. para conseguirlo, tenemos que agregar la variable 'min_examined_row_limit' al fichero de configuración con el número de filas mínimo para que una query sea considerada lenta. Tras ello reiniciamos el servicio y los cambios ya surgirán efecto.
También podemos hacerlo en tiempo real dándole un valor a dicha variable.
mysql> show global variables like 'min_examined_row_limit';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| min_examined_row_limit | 0     |
+------------------------+-------+
1 row in set (0.00 sec)

mysql> set global min_examined_row_limit=250;
Query OK, 0 rows affected (0.00 sec)


mysql> show global variables like 'min_examined_row_limit';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| min_examined_row_limit | 250   |
+------------------------+-------+
1 row in set (0.00 sec)


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios