Continue lendo
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”.
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.
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.
SELECT (SUM(DATA_LENGTH + INDEX_LENGTH))/1048567 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = nome_banco_dados;
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;
SELECT * FROM wp_users;
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;
SELECT DISTINCT meta_key FROM wp_usermeta;
SELECT * FROM wp_usermeta WHERE meta_value LIKE ('%administrator%');
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;
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\_%');
SELECT COUNT(*) AS `Transient_Linhas_em_Autoload` FROM wp_options WHERE option_name LIKE ('%\_transient\_%') AND autoload = 'yes';
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%');
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';
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