mayo
2008
Monitoreando consultas en MySQL
Cuando creamos una aplicación donde el motor de la base de datos juega un papel fundamental, muchas veces no revisamos exahustivamente las tablas creadas, inclusive haciéndolo en ocasiones se nos van las patas... (hablo principalmente de programadores solitarios). La forma más sencilla para verificar consultas lentas y consultas sin indices es añadir en nuestra configuración de [mysqld]:
[mysqld] log-slow-queries long_query_time = 3 #después de 1 segundo una consulta es lenta, pero démosle chance de 3. log-queries-not-using-indexes
De esa forma, en el archivo log de MySQL (presumiblemente en /var/lib/mysql) nos irá diciendo aquellas consultas que tarden mas de 3 segundos (una eternidad) y aquellas consultas que no tienen índices o aún teniéndolos que no los estén usando. La forma de verificarlo sería anteponer "DESC" a la consulta, por ejemplo:
DESC SELECT * FROM foo where bar='false';
En este caso MySQL nos devolverá si está utilizando llaves y cuales son. Esto que es tan simple puede ahorrar muchos dolores de cabeza (y servidores caidos) por falta de recursos cuando una aplicación es muy "pesada".
Han escrito 4 comentarios de «Monitoreando consultas en MySQL»
eko
Miércoles 21 de mayo, 2008 14:01.-
entendido y anotado!
funciona tambien con un servidor winbugs?
ToRo
Miércoles 21 de mayo, 2008 14:02.-
si, no importa la plataforma… solo que el log estará en otro lugar.

eko
Miércoles 21 de mayo, 2008 16:36.-
Ok gracias! loe tendre en cuenta para cuando la aplicacion q tengo este en el servidor :P

neo
Jueves 22 de mayo, 2008 17:47.-
Excelente tip, ahora que voy a usar mysql en el trabajo este post es muy pero que muy util :D

