Um dos meus clientes está em um blog bastante grande em termos de número de postagens e tráfego. Estou tentando reduzir o tamanho do banco de dados a um tamanho gerenciável, e uma coisa que está aumentando é literalmente dezenas de milhares de revisões posteriores.
Eu já defini a configuração do Wordpress para limitar o número de revisões no futuro para duas:
define('WP_POST_REVISIONS', 2);
Mas quero excluir todas as revisões existentes.
Pergunta 1 : É seguro excluir diretamente todas as linhas da tabela wp_posts que possuem um post_type de revisão? (Vi respostas conflitantes sobre isso - mas eu adoraria poder fazer dessa maneira se for seguro).
Pergunta 2 : … e isso é relevante apenas se eu NÃO fizer a exclusão direta da pergunta um:
Encontrei esta resposta em que o songdogtech fornece uma consulta ao banco de dados para excluir com segurança, mas (1) é especificamente em resposta a uma pergunta multissite (este é um site único) e (2) acabei de atualizar o site para 3.6, que incluiu alterações no banco de dados . (Portanto, não tenho habilidade suficiente para ler consultas de banco de dados para saber exatamente o que está acontecendo lá e se funcionaria em um único site no WP 3.6
fonte
1. Backup DB 2. Backup DB Again
, Eu gosto desta parte, +1 para isso.$ wp post delete $(wp post list --post_type='revision' --format=ids)
Os detalhes fornecidos até agora estão incompletos, na melhor das hipóteses, e a consulta a, b, c não é boa - potencialmente perigosa. Esquece de levar em consideração muitas das dependências em potencial. Há uma discussão completa e melhores consultas aqui
Há também esta versão revisada da consulta, que deve ser muito melhor, mas teste em um ambiente de desenvolvimento e backup de baixo risco:
Especificamente:
Esta consulta lida com dados mais antigos, nos quais o WordPress pode estar usando o mesmo object_id na tabela wp_term_relationships para uma postagem e um link. Ao executar as outras versões dessa consulta a, b, c, você também pode excluir acidentalmente os dados do link. Isso não é tão problemático nas instalações mais recentes do WordPress.
Se você executar essa versão da consulta e receber 0 exclusões, significa apenas que não há entradas 'link_category' na tabela wp_term_taxonomy. Você pode verificar verificando essa tabela e, em seguida, basta remover a última linha e executar a consulta novamente.
Mas não se esqueça de fazer backup, testar e verificar os resultados antes de usar nos dados de produção. Essa consulta levou uma das minhas tabelas wp_posts com revisão revisada de 300 MB para 5 MB após a otimização.
fonte
Execute a consulta SQL:
NOTA: A consulta acima “exclui apenas as postagens marcadas como revisões. Se, por algum motivo, você associou uma revisão a uma tag ou categoria que foi removida quando a postagem final foi publicada, você terá entradas extras em outras tabelas, como termos. ” A consulta adequada para remover com segurança todas as suas revisões é a seguinte (altere o prefixo da tabela conforme necessário):
fonte