Home

"I'm brave but I'm chicken shit"

WordPress: quando la tabella wp_commentmeta diventa troppo grande

Talvolta può acccadere che la tabella wp_commentmeta del database di WordPress diventi di dimensioni sproporzionate rispetto alla wp_comments. Come il nome suggerisce, wp_commentmeta contiene i metadati di ciascun commento; può capitare che rimangano dei record “orfani” di commenti cancellati. Succedeva abbastanza spesso per colpa del plugin antispam Akismet che è stato affetto per un po’ da questo fastidioso bug, ed è uno delle cause principali della crescita indiscriminata del database. Questi record inutili possono essere cancellati per recuperare spazio e ottenere un db più maneggevole. Prima di qualunque operazione è fortemente consigliato fare un backup completo del database tramite il menu nella linguetta “Esporta”(*).

Come prima cosa va verificato che effettivamente i record siano “orfani”; dall’interfaccia di PHPMyAdmin (o da riga di comando ma se lo sapete fare non avete bisogno di questo post) si seleziona il database e poi si clicca sulla linguetta “SQL”. Nell’apposito form va inserita questa query che visualizzerà i candidati alla cancellazione:

Select * FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

e cliccare su “Esegui”. Questo comando non è distruttivo e non fa altro che visualizzare una (lunga) lista di record. Diamo una scorsa a campione per verificare che effettivamente i record siano cancellabili in blocco. In genere si capisce dal riferimento ad Akismet o dal contenuto “spammoso”. Una volta ragionevolmente sicuri di poter cancellare senza grossi problemi, ripetiamo la procedura inserendo questa volta:

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

Al termine dell’operazione andiamo alla linguetta “Struttura”, selezioniamo tutti i campi e scegliamo “Ottimizza” dall’apposito menu a tendina.

Ecco fatto! Il vostro database adesso è molto più “magro” di prima.

(*)  Fatelo davvero!


Pubblicato

in

da

Commenti

2 risposte a “WordPress: quando la tabella wp_commentmeta diventa troppo grande”

  1. […] l’articolo completo. Questo post è stato scritto da marcellobug e pubblicato il aprile 25, 2011 alle 10:01 am in […]

  2. Avatar Mariuzze
    Mariuzze

    Andrea buongiorno.
    La mia tabella wp_commentmeta è di 34 Mib con 27,637 record
    la mia tabella wp_comments è di 6,3 Mib con 11,868 record
    Ho fatto tutto quello da te indicato e mi ha cancellato all’incirca 3000 commenti.
    Come posso fare per cancellare tutti quelli che non servono? C’è un modo veloce?
    Grazie mille