Pular para o conteúdo
Otimização do Banco de Dados WordPress: Como Limpar e Acelerar Seu Banco de Dados

Otimização do Banco de Dados WordPress: Como Limpar e Acelerar Seu Banco de Dados

Erik KellerErik KellerAtualizado em: 15 min de leitura471 visualizações

Cada carregamento de página, envio de formulário, operação de plugin e sessão de usuário no WordPress envolve consultas ao banco de dados. Com o tempo, o banco de dados acumula sobrecarga: revisões de postagens antigas, transientes expirados, metadados órfãos, comentários de spam e tabelas não utilizadas de plugins desativados. Esse inchaço desacelera as consultas, aumenta os tamanhos de backup e degrada o desempenho geral do site. Este guia aborda como identificar o inchaço do banco de dados, limpá-lo com segurança e evitar que retorne.

O que o WordPress Armazena no Banco de Dados

Entender o que vive em seu banco de dados ajuda a identificar o que pode ser removido com segurança. Uma instalação padrão do WordPress usa 12 tabelas principais, e os plugins adicionam suas próprias tabelas conforme necessário.

Tabela Armazena Fonte Comum de Inchaço
wp_posts Postagens, páginas, revisões, anexos, tipos de post personalizados Revisões de postagens, rascunhos automáticos
wp_postmeta Metadados para postagens (campos personalizados, dados de plugins) Meta órfã de postagens deletadas
wp_options Configurações do site, configurações de plugins, transientes Transientes expirados, configurações de plugins antigas
wp_comments Comentários e trackbacks Comentários de spam, comentários excluídos
wp_commentmeta Metadados para comentários Metadados do Akismet para comentários excluídos
wp_usermeta Metadados de usuários Tokens de sessão, dados de usuários de plugins
wp_termmeta Metadados para categorias e tags Metadados de termos órfãos

Fontes Comuns de Inchaço no Banco de Dados

Revisões de Postagens

O WordPress salva uma revisão toda vez que você clica em "Salvar Rascunho" ou "Atualizar" em uma postagem ou página. Uma postagem editada 50 vezes tem 50 revisões armazenadas na tabela wp_posts, cada uma com seu próprio conjunto de entradas de postmeta. Em um site com centenas de postagens, as revisões podem representar milhares de linhas desnecessárias no banco de dados.

Transientes

Transientes são dados temporários armazenados na tabela wp_options pelo núcleo do WordPress e plugins. Eles têm tempos de expiração, mas o WordPress não exclui automaticamente transientes expirados. Eles se acumulam ao longo do tempo e podem aumentar significativamente a tabela de opções, especialmente em sites com muitos plugins.

Dados Órfãos

Quando você exclui uma postagem, seus metadados (entradas wp_postmeta) podem não ser excluídos. Da mesma forma, excluir comentários, usuários ou termos pode deixar linhas de metadados órfãos. Plugins desativados e excluídos frequentemente deixam suas tabelas de banco de dados para trás, consumindo espaço e poluindo seu banco de dados.

Conteúdo de Spam e Excluído

Comentários de spam, postagens excluídas e comentários excluídos permanecem no banco de dados até serem esvaziados manualmente. Sites com Akismet ou outros filtros de spam podem acumular milhares de comentários de spam que precisam de limpeza periódica.

Rascunhos Automáticos

O WordPress cria postagens de rascunho automático quando você clica em "Adicionar Novo" no editor de postagens, mesmo que você nunca publique. Esses se acumulam ao longo do tempo e não servem para nada após o término da sessão de edição.

Limpeza Manual do Banco de Dados via SQL

Para aqueles que se sentem confortáveis com SQL, você pode limpar diretamente usando phpMyAdmin ou um cliente de banco de dados. Sempre faça backup do seu banco de dados antes de executar consultas de limpeza.

Excluir Revisões de Postagens

-- Excluir todas as revisões de postagens
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Excluir postmeta órfão (metadados para postagens excluídas)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.ID É NULO;

Limpar Transientes

-- Excluir transientes expirados
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- Excluir os dados dos transientes para transientes expirados
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';

Remover Comentários de Spam e Lixeira

-- Excluir comentários de spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- Excluir comentários na lixeira
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- Excluir metadados de comentários órfãos
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

Limpeza de Banco de Dados Baseada em Plugins

Se você prefere uma abordagem baseada em GUI, vários plugins lidam com a otimização de banco de dados com capacidades de agendamento:

WP-Optimize

WP-Optimize é um plugin gratuito que limpa revisões, rascunhos, spam, transientes e dados órfãos. Ele também otimiza tabelas de banco de dados e suporta limpezas agendadas. A versão Pro adiciona suporte a multisite e agendamento avançado.

Otimização de Banco de Dados WP Rocket

WP Rocket inclui uma aba de Banco de Dados que lida com revisões, auto-rascunhos, posts na lixeira, comentários de spam, transientes e otimização de tabelas. Como o WP Rocket é principalmente um plugin de cache, você obtém limpeza de banco de dados juntamente com otimização de desempenho em uma única ferramenta.

Advanced Database Cleaner

Este plugin vai mais fundo ao detectar tabelas deixadas por plugins desativados e eventos cron órfãos. Ele categoriza tabelas como núcleo do WordPress, criadas por plugins ou desconhecidas, ajudando você a identificar quais tabelas são seguras para remover.

Plugin Versão Gratuita Limpeza Agendada Detecção de Tabelas
WP-Optimize Sim Sim Básico
WP Rocket Não (Apenas Premium) Sim Não
Advanced Database Cleaner Sim Apenas Pro Sim (detalhado)

Otimizações wp-config.php

Previna o inchaço do banco de dados na fonte adicionando estas constantes ao seu arquivo wp-config.php:

Limitar Revisões de Postagens

// Manter apenas 5 revisões por post (recomendado)
define( 'WP_POST_REVISIONS', 5 );

// Desativar revisões completamente (não recomendado para a maioria dos sites)
define( 'WP_POST_REVISIONS', false );

Definir revisões para 5 fornece histórico suficiente para recuperar de erros enquanto previne o crescimento ilimitado de revisões. Para sites com muito conteúdo e edições frequentes, 10 revisões é uma alternativa razoável.

Esvaziar Lixeira Automaticamente

// Esvaziar a lixeira a cada 7 dias (o padrão é 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// Desativar a lixeira (itens excluídos imediatamente - use com cautela)
define( 'EMPTY_TRASH_DAYS', 0 );

Intervalo de Salvamento Automático

// Aumentar o intervalo de salvamento automático para 5 minutos (o padrão é 60 segundos)
define( 'AUTOSAVE_INTERVAL', 300 );

Otimização de Tabelas de Banco de Dados

Após excluir linhas, execute uma operação de OTIMIZAÇÃO para recuperar espaço fragmentado:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

Agende isso mensalmente ou após grandes operações de limpeza. A maioria dos plugins de limpeza inclui otimização de tabelas em suas tarefas agendadas.

Agendando Limpeza Automática

Configure horários automatizados: limpeza semanal de transientes e spam, remoção mensal de revisões e otimização de tabelas, e auditorias trimestrais de tabelas de plugins órfãos. WP-Optimize e WP Rocket suportam limpeza agendada. Configure-os durante horários de menor movimento.

Monitorando o Tamanho do Banco de Dados

Acompanhe o tamanho do seu banco de dados para detectar inchaço cedo. Execute esta consulta para ver os tamanhos das tabelas individuais:

SELECT table_name AS 'Tabela',
       ROUND(data_length / 1024 / 1024, 2) AS 'Dados (MB)',
       table_rows AS 'Linhas'
FROM information_schema.tables
WHERE table_schema = 'seu_nome_de_banco_de_dados'
ORDER BY (data_length + index_length) DESC
LIMIT 20;

Se wp_options exceder 5 MB ou wp_postmeta crescer além de 100 MB, é hora de uma limpeza. Essas tabelas são consultadas com frequência, então seu tamanho afeta diretamente os tempos de carregamento da página.

Para uma abordagem abrangente de otimização de desempenho que inclua otimização de banco de dados juntamente com cache, otimização de imagens e configuração de servidor, leia nosso guia de otimização de velocidade do WordPress. Para manter a saúde do banco de dados como parte da sua rotina de manutenção, veja nosso guia de manutenção do WordPress.

Para mais detalhes, consulte a documentação oficial: API do Banco de Dados do WordPress.

Perguntas Frequentes

É seguro excluir revisões de postagens do banco de dados?

Sim, excluir revisões de postagens é seguro e não afeta seu conteúdo publicado. As revisões são instantâneas históricas das alterações do rascunho. Uma vez que seu conteúdo está finalizado, as revisões não servem para a maioria dos sites. No entanto, sempre faça backup do seu banco de dados antes de realizar qualquer limpeza.

A otimização do banco de dados melhorará a velocidade do meu site de forma notável?

A melhoria depende de quão inchado está o seu banco de dados. Sites com mais de 50.000 linhas órfãs ou uma tabela wp_options que excede 10 MB verão melhorias notáveis nos tempos de carregamento das páginas e na responsividade do painel administrativo. Sites menores podem ver ganhos marginais. A otimização do banco de dados funciona juntamente com o cache e outras medidas de desempenho para uma melhoria cumulativa.

Com que frequência devo otimizar meu banco de dados WordPress?

Para sites ativos com atualizações regulares de conteúdo, a otimização mensal é uma boa referência. Sites com alto tráfego, com comentários frequentes, transações do WooCommerce ou envios de formulários podem se beneficiar de limpeza semanal de transientes e spam, juntamente com otimização mensal de tabelas.

Plugins de limpeza de banco de dados podem quebrar meu site?

Plugins respeitáveis como WP-Optimize e WP Rocket são projetados para serem seguros. Eles visam categorias de inchaço conhecidas (revisões, transientes, spam) e não tocam em dados essenciais. O risco aumenta ao excluir manualmente tabelas específicas de plugins. Se não tiver certeza se uma tabela é necessária, mantenha-a e pesquise seu propósito primeiro.

Qual é a diferença entre OPTIMIZE TABLE e excluir linhas?

Excluir linhas remove dados da tabela. OPTIMIZE TABLE reorganiza o armazenamento físico da tabela após as linhas terem sido excluídas, recuperando espaço em disco e desfragmentando o arquivo de dados. Pense nisso como excluir arquivos (remover linhas) versus desfragmentar seu disco rígido (otimizar a tabela).

Devo usar InnoDB ou MyISAM para tabelas do WordPress?

O WordPress usa InnoDB por padrão desde a versão 5.5, e é o mecanismo de armazenamento recomendado. InnoDB suporta bloqueio em nível de linha (melhor para usuários simultâneos), transações e recuperação de falhas. MyISAM é mais rápido para operações de leitura intensiva, mas carece desses recursos de confiabilidade. Se você encontrar tabelas MyISAM em seu banco de dados, geralmente é recomendado convertê-las para InnoDB.

Como posso identificar tabelas deixadas por plugins desativados?

O plugin Advanced Database Cleaner pode detectar e categorizar tabelas não essenciais. Alternativamente, execute a consulta SQL SHOW TABLES e compare os nomes das tabelas com as tabelas principais do WordPress e seus plugins atualmente ativos. Tabelas com prefixos correspondentes a plugins desativados são candidatas à remoção.

O WooCommerce adiciona um inchaço significativo ao banco de dados?

Sim. O WooCommerce armazena dados de pedidos, metadados de produtos, sessões de clientes e transientes que crescem substancialmente em lojas ativas. Use WooCommerce > Status > Ferramentas para limpar transientes e sessões expirados regularmente.

Otimize o Desempenho de Todos os Ângulos

O WP Rocket gerencia cache, limpeza de banco de dados e otimização de desempenho em um único plugin, para que você possa manter seu site funcionando sem problemas.

Explore o WP Rocket →

Perguntas frequentes

Com que frequência devo otimizar meu banco de dados WordPress?
Para a maioria dos sites, a otimização mensal é suficiente. Sites com alto tráfego, como lojas ativas do WooCommerce ou fóruns, devem otimizar semanalmente. Ferramentas automatizadas como WP-Optimize podem gerenciar isso em um cronograma.
É seguro excluir revisões de postagens do banco de dados?
Sim, excluir revisões antigas de postagens é seguro e comumente recomendado. O WordPress armazena revisões ilimitadas por padrão, o que pode adicionar milhares de linhas. Você pode limitar as revisões adicionando a constante define REVISIONS ao wp-config.php.
A otimização do banco de dados melhorará a velocidade do meu site?
A otimização do banco de dados geralmente reduz o tempo de execução das consultas, o que melhora o tempo de resposta do servidor (TTFB). O impacto é mais perceptível em páginas dinâmicas com consultas complexas, como páginas de produtos do WooCommerce ou resultados de busca.
Devo otimizar o banco de dados antes ou depois de um backup?
Sempre crie um backup completo do banco de dados antes de executar qualquer otimização. Isso garante que você possa restaurar seus dados se algo der errado durante o processo de limpeza.
O que são linhas de metadados órfãos e posso removê-las com segurança?
Os metadados órfãos são linhas nas tabelas meta que referenciam postagens, usuários ou comentários que não existem mais. Eles são seguros para remover e costumam se acumular devido a plugins ou conteúdos deletados. Ferramentas como WP-Optimize podem identificar e limpar essas entradas.

Compartilhar esta postagem

Sobre o Autor

Erik Keller
Erik Keller

Especialista em WordPress

Especialista WordPress sênior com ampla experiência em desenvolvimento de temas, plugins e WooCommerce. Apaixonado por ajudar empresas a ter sucesso com soluções WordPress.

WordPressWooCommerceDesenvolvimento de TemasDesenvolvimento de PluginsOtimização de Desempenho

Fique Atualizado

Receba as últimas dicas e tutoriais de WordPress no seu e-mail.