Consultas lentas no banco de dados são uma das causas mais comuns de problemas de desempenho do WordPress — especialmente em painéis de administração lentos. Cada carregamento de página do WordPress pode acionar 50-200+ consultas de banco de dados, e se alguma estiver desotimizada, a página inteira fica proporcionalmente mais lenta.
Causas mais comuns que diagnosticamos:
Processo sistemático, rápido e seguro:
No my.cnf/mysqld.cnf: defina slow_query_log=ON, long_query_time=1. Em seguida, analise com: mysqldumpslow -s t /var/log/mysql/slow.log | head -20
Execute estes para índices comuns ausentes: ALTER TABLE wp_postmeta ADD INDEX meta_value(meta_value(191)); ALTER TABLE wp_options ADD INDEX autoload_option_name (autoload,option_name);
Execute: wp transient delete --all && wp post delete $(wp post list --post_status=auto-draft --format=ids) && wp db optimize
Nosso especialista WordPress responde em minutos.
O tamanho por si só não é o problema — a eficiência das consultas é. Um banco de dados de 10GB bem indexado pode ter um desempenho mais rápido do que um de 500MB mal indexado. No entanto, bancos de dados com mais de 1GB com consultas não otimizadas tornam-se visivelmente lentos.
Não — a limpeza do banco de dados remove apenas sobrecarga técnica: revisões de postagens antigas, transientes expirados, metadados órfãos. Suas postagens, páginas, produtos e usuários não são afetados.
Usamos Query Monitor (WordPress) ou New Relic para dividir o tempo de solicitação por fase: execução PHP vs consultas de banco de dados vs HTTP/externo. Se as consultas representam >40% do tempo de carregamento da página, o banco de dados é o gargalo.
Uma consulta lenta é uma única instrução SQL ineficiente. Um banco de dados lento é geral: muitas consultas são lentas devido a índices ruins, tabelas superdimensionadas, falta de otimização ou recursos insuficientes do servidor. Ambos precisam de correções diferentes.
Habilite o slow_query_log do MySQL com long_query_time=1. Após executar tráfego normal por 24 horas, o log mostra cada consulta acima de 1 segundo. Usamos mysqldumpslow para resumir os piores casos.
Massiva. Uma consulta escaneando 100.000 linhas sem um índice leva mais de 5 segundos; com o índice certo, leva menos de 10ms. Identificamos índices ausentes via EXPLAIN e os adicionamos com segurança sem bloquear tabelas.
wp_postmeta cresce 5-20x maior que wp_posts (ACF, Yoast, campos personalizados todos adicionam linhas). Sem índices compostos em (post_id, meta_key), as consultas escaneiam milhões de linhas. Adicionamos os índices que o WordPress não inclui por padrão.
Sim — significativamente. As entradas autoload de wp_options são carregadas na memória em cada solicitação WP. Se os dados autoload excederem 1MB (transientes, sessões expiradas), cada solicitação fica 100-300ms mais lenta.
Sim para cargas pesadas de escrita (WooCommerce). InnoDB tem bloqueio a nível de linha vs bloqueio a nível de tabela do MyISAM. Migramos tabelas com `ALTER TABLE ... ENGINE=InnoDB` após fazer backup.
Sim. Uma consulta sem LIMIT escaneando tabelas enormes pode consumir todas as conexões MySQL e memória, bloqueando todas as outras solicitações. Identificamos e corrigimos ou removemos a consulta ruim.
MySQL 8.x e MariaDB 10.5+ têm melhorias significativas de desempenho em relação a versões mais antigas: melhor otimizador de consultas, junções de hash, índices invisíveis. Atualizar do MySQL 5.6 para 8.0 frequentemente dá uma melhoria de velocidade de consulta de 20-40%.
Reduz, mas não substitui. Redis armazena em cache os resultados de consultas repetidas. Mas consultas não armazenadas em cache ainda atingem o banco de dados, então a otimização ainda é importante. Fazemos ambos: otimizamos consultas E adicionamos cache de objetos.
Fontes comuns de crescimento: post_revisions (configurar limite WP_POST_REVISIONS), transientes expirados (limpeza WP_CRON), comentários de spam, tabelas action_scheduler (WooCommerce) e dados de plugins de análise. Limpamos cada fonte.
A maioria das operações: sim. CHECK TABLE e OPTIMIZE TABLE em tabelas InnoDB são executados online. ALTER TABLE para adicionar índices é online no MySQL 5.6+. Reparos maiores podem precisar de janelas de manutenção breves.
Seis camadas: 1) programação regular de OPTIMIZE TABLE, 2) automação de limpeza de revisões/transientes, 3) monitoramento slow_query_log com alertas, 4) limitar opções autoloaded, 5) auditoria periódica de plugins (remover os ineficientes), 6) tamanho suficiente do innodb_buffer_pool_size.
Site WordPress de repente lento? Diagnosticamos gargalos de desempenho e restauramos sua velocidade.
Response in minutes. No data loss. No diagnosis charge.
wpfix.blimx.com