FB

Como limpar um banco de dados WordPress?

Grátis domínio, hospedagem e e-mail!

por | 06/01/23 14:55 | Notícias, Tutorial, WordPress

Este texto foi pensado para ajudar todos os administradores que precisam limpar o banco de dados do WordPress. Sites criados com o WordPress são excelentes, porém, como todo sistema, demandam manutenção e cuidado. A facilidade de uso e a sua gratuidade transformam o WordPress no maior sistema gerenciador de sites do planeta.Temos notado, em alguns trabalhos de manutenção, que muitos websites em WordPress estão apresentando lentidão ou erros, que transformam o site em uma “carroça”. Uma das principais causas dessa lentidão é a instalação de plugins e temas como se não houvesse amanhã. Isso porque dada a facilidade de instalar um plugin ou tema no WordPress, muitos donos de sites acabam utilizando o seu próprio site como um ambiente de teste desses programas.Aqui na Link Nacional, sempre orientamos nossos usuários a evitar essas práticas em um ambiente de produção, pois um plugin ou tema pode corromper ou deixar resíduos no banco de dados do seu WordPress.

Continue lendo

Como otimizar um site WordPress?

Por que meu WordPress está muito lento?

Cada plugin ou tema instalado pode inserir dados (chamados tecnicamente de dados de transição) no banco de dados do WordPress sem que você saiba. E, com a desinstalação dos plugins, esses dados nem sempre são removidos. Assim, o banco de dados do seu site vai ficando cheio de “lixo”.

Manutenção e limpeza

Recentemente recebemos uma demanda de um usuário que possuía um site que estava travando por meses. Logo percebemos que não existia uma política para instalação de plugins e temas e o WordPress já estava rodando há mais de 5 anos.

Pronto, eis aí novamente mais um cenário para a ação do nosso serviço de manutenção de sites e limpeza no banco de dados do WordPress.

Ao iniciar a demanda foi realizado uma consulta rápida na tabela wp_options e constatamos cerca de 545 Mb de dados inúteis.
O que aconteceu foi que um plugin de rede social foi desinstalado e deixou milhares de linhas de transição no banco de dados. Isso ocorre porque a desinstalação do plugin não necessariamente limpa os seus dados do banco; e esses dados de transição (transients), que ficam no “purgatório” do banco de dados, não expiram. Além disso, plugins como o WP-Optimize não conseguem enxergá-los e, portanto, também não conseguem limpá-los. Provavelmente, por anos esses dados estão ali travando o site várias vezes.
Banco de dados
Após a limpeza, a quantidade de dados inúteis na tabela saiu de 545Mb (quando recebemos a demanda) para 2Mb. Por isso, muito cuidado com a instalação desses programas. Evite que isso ocorra no seu site em WordPress!

Como limpar o banco de dados do WordPress?

Neste post, vou deixar alguns dos comandos utilizados para realizar esse tipo de trabalho.as lembre-se: se você não é um técnico e não entende nada de banco de dados, nossa recomendação é a contratação de um especialista em WordPress. Nisso a Link Nacional pode auxiliá-lo, entre em contato conosco.

Para executar os comandos SQL, você pode utilizar o PhpMyAdmin ou um aplicativo livre como o DBeaver.

Uma dica para um mero usuário do WordPress é a utilização do plugin LiteSpeed ou o WP-Optimize ao invés de limpar na mão.

  • Revise o tamanho da tabela wp_posts.
  • Limpe os comentários do SPAM e da lixeira na tabela wp_comments.

Limpeza avançada:

A tabela wp_options carrega em todas as páginas do WordPress, portanto é crucial que isso fique algo em torno de 2MB e 500 linhas.

Verifique o tamanho da tabela wp_options.
Options de autoload orfãs em wp_options.
Dados não usados e órfãos em wp_postmeta deixados por temas e plugins, post inexistentes ou duplicados, alguns plugins geram uma continuidade enorme de dados nessa tabela.
Tabelas enormes com logs desnecessários de plugins de logs, como EWWW ou WordFence.
Vamos lá então, vou deixar os principais comandos SQL utilizados para os procedimentos acima. Verifique o tamanho do banco de dados usando seu próprio “nome_banco_dados”.
SELECT (SUM(DATA_LENGTH + INDEX_LENGTH))/1048567 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = nome_banco_dados;
Verificar o tamanho de uma tabela individualmente:
SELECT (SUM(DATA_LENGTH + INDEX_LENGTH))/1048567 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'wp_posts';

Tabela wp_users

Não iremos limpar, mas analisar alguns dados e um possível ajuste de usuários cadastrados sem necessidade. Vamos conta as linhas antes de seguir para as outras consultas:
SELECT COUNT(*) FROM wp_users;
Verifique a lista de usuários:
SELECT * FROM wp_users;
Dica de segurança: verifique se tem um usuário padrão “admin”, esse é o método principal de ataque hacker.
SELECT * FROM wp_users WHERE user_login = 'admin';

Tabela wp_usermeta

Identifique se a tabela wp_usermeta possui metadata orfã por uma lista de ID de usuários não encontrados:
SELECT DISTINCT user_id FROM wp_usermeta LEFT JOIN wp_users ON wp_users.id = wp_usermeta.user_id WHERE wp_users.id IS NULL;
Verifique a lista de chaves da meta (meta keys) adicionados por plugins, por padrão o WordPress possui em média 20 linhas.
SELECT DISTINCT meta_key FROM wp_usermeta;
Identifique quem são os administradores:
SELECT * FROM wp_usermeta WHERE meta_value LIKE ('%administrator%');
Também é possível encontrar todos os usuários pelas funções (roles):
SELECT * FROM wp_usermeta WHERE `meta_key` = 'wp_capabilities' OR `meta_key` = 'wp_user_level' ORDER BY user_id;

Tabela wp_posts

Agora iremos analisar a tabela onde são armazenados os posts e páginas do site, verificar o tipo de post (post tye) tamanho em mega (data size) e contar as linhas da tabela.
SELECT post_type, COUNT(*) AS `Rows`,
  ROUND(
    SUM(
      LENGTH(
        CONCAT(
          ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_parent, guid, menu_order, post_type
        )
      )
    )/1048567, 2
  ) AS `Dados_em_MB` FROM wp_posts GROUP BY post_type ORDER BY `Data_in_MB` DESC;

Com o próximo comando SQL é possível deletar todas as revisões dos POST:

DELETE FROM wp_posts WHERE post_type = 'revision';

Tabela wp_postmeta

Esta tabela possui muitas informações. Vamos analisar as chaves, linhas e o espaço em mega dos dados. O SQL abaixo irá agrupar e listar as chaves da meta (meta keys). Será possível identificar pelo prefixo do nome os plugins que criaram os dados:

SELECT meta_key, COUNT(*) AS `Rows`,  
  ROUND(
    SUM(
      LENGTH(
        CONCAT(meta_id, post_id, meta_key, meta_value)
      )
    )/1048567, 2
  ) AS `Tamanho_em_MB` FROM wp_postmeta GROUP BY meta_key ORDER BY `Tamanho_em_MB` DESC;

Existe um artigo em inglês com muitas informações de SQL e ajustes para essa tabela.

Tabela wp_options

O primeiro passo será obter o tamanho da tabela de acordo com o SQL abaixo:
SELECT ROUND(
    SUM(
      LENGTH(
        CONCAT(option_id, option_name, option_value, autoload)
      )
    )/1048567, 2
  ) AS `Options_Tamanho_Tabela_Em_MB` FROM wp_options;
Obtenha o tamanho das transições (transient) e quantidade de linhas:
SELECT 
  COUNT(*) AS `Transients_Rows`, 
  ROUND(
    SUM(
      LENGTH(
        CONCAT(option_id, option_name, option_value, autoload)
      )
    )/1048567, 2
  ) AS `Transients_dados_em_MB` FROM wp_options WHERE option_name LIKE ('%\_transient\_%');
Verifique quantos dados de transição estão no carregamento automático:
SELECT COUNT(*) AS `Transient_Linhas_em_Autoload` FROM wp_options WHERE option_name LIKE ('%\_transient\_%') AND autoload = 'yes';
Uma recomendação é deletar todas as linhas de transição de acordo com o nome de cada plugin, ao invés de deletar todas elas, especialmente se tiver usuários com sessões logadas. Caso o seu site utilize um plugin de cache de objetos como o Redis ou Memcached, provavelmente o seu banco de dados não possui dados de transição.
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%');
Obter tamanho e quantidade de linhas de opções no carregamento automático:
SELECT COUNT(*) AS `Autoload_Qtde_linhas`,
  ROUND(
    SUM(
      LENGTH(
        CONCAT(option_id, option_name, option_value, autoload)
      )
    )/1048567, 2
  ) AS `Autoload_Dados_Em_MB` FROM wp_options WHERE autoload = 'yes';
Verificar todas opções de carregamento automático é um método muito eficaz para identificar dados de opções órfãs, que ainda são carregadas no WordPress. Pois, mesmo após deletar o plugin esse dados continuam presentes. Provavelmente você irá encontrar algumas dezenas.
SELECT option_name FROM wp_options WHERE autoload = 'yes';

Conclusão

Este guia é uma lista com pequenos trechos de comandos SQL para analisar e limpar o banco de dados do seu MySQL ou MariaDB , otimizando espaço e melhorando a performance. Agradecemos imensamente a toda comunidade que disponibiliza conteúdos e nosso intuito com este artigo é que mais pessoas possam acessar o material e otimizar o banco de dados do seu WordPress. Se precisar de um especialista em WordPress para executar os procedimentos entre em contato conosco.

Nós temos a solução

Tenha uma equipe profissional pronta para te ajudar rapidamente

Redação: Link Nacional
A Companhia Link Nacional atua na área de tecnologia da informação (TI). E é especializada em oferecer serviços e soluções para internet. Fundada em 2004 na cidade de Ribeirão Preto/SP, hoje ela expandiu as suas áreas de negócios por todo o Brasil.
5 2 votos
Vote no Artigo
Inscrever-se
Notificar de
guest

0 Comentários
Feedbacks embutidos
Ver todos os comentários

Últimas postagens

Onde comprar um domínio?

Onde comprar um domínio?

Comprar um domínio é um passo muito importante para qualquer pessoa ou empresa que deseja estabelecer uma presença online.  Um domínio não é apenas um...