Blog
Tuning de slow queries no MySQL — o workflow EXPLAIN-driven que usamos em bases de cliente
26 de maio de 2026 · 1 min de leitura · por Sudhanshu K.
Toda auditoria de MySQL que fazemos traz à tona o mesmo punhado de antipadrões de query. As correções quase sempre são pequenas (um índice, uma reescrita, um LIMIT), mas encontrá-las em escala é a parte que exige disciplina. O slow query log é o ponto de entrada certo — mas só se você de fato lê-lo.
Este é o workflow EXPLAIN-driven que usamos para triar slow queries em bases de cliente.
O loop slow query log + pt-query-digest
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 0.5
log_slow_admin_statements = 1
log_queries_not_using_indexes = 0 # barulhento, offpt-query-digest /var/log/mysql/slow.log > /tmp/digest.txt
head -100 /tmp/digest.txtpt-query-digest agrupa queries por fingerprint e ordena por tempo total. Os 10 primeiros fingerprints são quase sempre 80 % da dor da DB.
O artigo completo cobre:
- O threshold de 0,5 segundo do
long_query_timee quando baixá-lo - Ler a saída do
EXPLAIN ANALYZE(linhas examinadas, escolha de chave, % filtrado) performance_schema.events_statements_summary_by_digestcomo alternativa ao log em tempo real- Os sete antipadrões que continuamos encontrando (wildcards no início, OR vs UNION,
SELECT *, etc.) - Design de índices — covering indexes, comprimento de prefixo em VARCHAR, ordem composta
- Quando consertar o schema vs quando reescrever a query
Fale conosco se seu slow log cresceu ao ponto de ninguém mais abri-lo.
Full article available
Read the full article