Pular para o conteúdo
EdgeServers
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, off
pt-query-digest /var/log/mysql/slow.log > /tmp/digest.txt
head -100 /tmp/digest.txt

pt-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_time e quando baixá-lo
  • Ler a saída do EXPLAIN ANALYZE (linhas examinadas, escolha de chave, % filtrado)
  • performance_schema.events_statements_summary_by_digest como 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