Cómo encontrar consultas lentas en MySQL
Antes de optimizar hay que medir. MySQL 8.0 ofrece tres herramientas complementarias: el slow query log registra las consultas que tardan de más, EXPLAIN muestra el plan de una consulta, y performance_schema agrega estadísticas de todas las consultas del servidor.
- 1
Activa el slow query log
Registra las consultas que tardan más del umbral. long_query_time en segundos (acepta decimales). Actívalo en caliente para no reiniciar.
SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; -- consultas de más de 1 segundo - 2
Revisa qué consultas consumen más tiempo total
performance_schema resume el impacto acumulado. Ordena por tiempo total, no solo por tiempo por ejecución: una consulta rápida que corre miles de veces puede pesar más que una lenta ocasional.
SELECT digest_text, count_star, ROUND(sum_timer_wait/1e12, 2) AS seg_total FROM performance_schema.events_statements_summary_by_digest ORDER BY sum_timer_wait DESC LIMIT 10; - 3
Analiza el plan de la consulta sospechosa
EXPLAIN te dice cómo piensa ejecutar MySQL. Busca type ALL (escaneo completo) y valores altos en rows.
EXPLAIN SELECT * FROM pedidos WHERE estado = 'pendiente'; - 4
Mide el plan real con EXPLAIN ANALYZE
En MySQL 8.0.18 y posteriores, EXPLAIN ANALYZE ejecuta la consulta y muestra tiempos reales por paso. Cuidado: sí ejecuta la consulta, no la corras sobre sentencias que modifican datos.
EXPLAIN ANALYZE SELECT * FROM pedidos WHERE estado = 'pendiente';
// el error común
Un long_query_time muy bajo (por ejemplo 0) llena el disco con logs a gran velocidad en un servidor con carga. Empieza con 1 o 2 segundos, identifica lo peor y baja el umbral solo si hace falta.
// cuándo conviene un experto
Cuando la app va lenta pero no sabes cuál consulta es la culpable, o cuando ya la encontraste pero no cede al optimizar, conviene una mirada experta. En dba.mx hacemos diagnóstico de rendimiento con datos reales, con techo cerrado.
Agenda un Escaneo — desde USD $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.