O plugin Akismet é uma maravilha, funciona muito bem para pegar os malditos SPAMs de comentários que insistem em aparecer aos montes em meus sites. Porém, descobri que um grande problema dele, é entupir o banco de dados do WordPress com dados (inúteis) na tabela wp_commentmeta. Ele adiciona as seguintes chaves para os comentários:
- akismet_result
- akismet_history
- akismet_as_submitted
Estes dados o Akismet usa para fins estatísticos e de histórico. Quando você entra em Admin > Jetpack > Estatísticas do Akismet, estes são os dados usados para fazer os gráficos e tabelas. Se já não há muito valor prático em saber este tipo de informação, o problema fica mesmo gritante quando você vai ver o tanto de espaço que isso ocupa em seu banco de dados.
Veja um exemplo real. Um de meus sites possui cerca de 30 mil comentários. Veja como estava o tamanho das tabelas do WordPress que guardam os comentários:
- wp_comments — 15 MB
- wp_commentmeta — 20 MB
Os meta dados dos comentários estavam ocupando mais espaço que os próprios comentários! Adivinha de quem era a culpa? Akismet. Depois de remover todos os seus dados, o tamanho da tabela caiu de 20 MB para somente 2 MB.
Importante: Faça um becape de sua base de dados antes de executar estes comandos!
Para ver (sem remover) todos os meta dados do Akismet em sua tabela, execute este comando SQL:
SELECT * FROM wp_commentmeta WHERE meta_key LIKE 'akismet%'
Para remover de uma vez todos estes dados, basta trocar o início do comando:
DELETE FROM wp_commentmeta WHERE meta_key LIKE 'akismet%'
Pronto, todos os meta dados do Akismet foram removidos. Porém, o espaço ocupado por eles na base de dados só vai ser liberado de fato quando você "esvaziar a lixeira", ou seja, otimizar a tabela:
OPTIMIZE TABLE wp_commentmeta
E aí, economizou muito espaço? Conte pra gente nos comentários!
Nota: Ainda estou procurando uma maneira limpa de impedir que o Akismet grave estes dados na tabela. Quando eu achar, atualizarei este post.