Di recente, ho lavorato su un’installazione WordPress il cui database mi è sembrato subito sproporzionato, di dimensioni eccessive. Più di 70 MB di database, che mi sembravano troppi per il numero di articoli e commenti contenuti in quel WordPress, anche se era un blog attivo fin dal 2009.
Confrontando le dimensioni delle singole tabelle, mi sono accorto che quasi la metà dello spazio occupato riguardava la tabella wp-commentmeta, e questo era ancora più anomalo.
Guardandoci per bene, ho visto che la maggior parte delle righe di quella tabella riguardavano Akismet, un utile plugin antispam.
Una cosa anomala, che finora non ho riscontrato in nessun’altra installazione, per lo meno non con queste proporzioni. Ho cercato riscontri e documentazione, e in effetti più d’uno in rete ha lamentato lo stesso problema, ma non sono riuscito a capire le eventuali cause.
A questo punto è importante svuotare il database, vediamo come.
Il modo più pratico e veloce, a mio avviso, è un bel comando SQL lanciata da terminale.
Ma una shell SSH a volte non è disponibile, oppure fa paura utilizzarla, allora torna utile phpMyAdmin.
Qualunque sia il mezzo utilizzato, è bene avere l’accortezza di fare un bel backup del database, prima di procedere.
In phpMyAdmin, basta andare alla voce “SQL” e nel box inserire la seguente query:
DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';
Nota bene: se si è modificato il prefisso delle tabelle del database, come abbondantemente consiglianto ovunque per motivi di sicurezza, nella query bisogna sostituire il prefisso “wp_” con quello utilizzato nel database.
Successivamente occorre ottimizzare la tabella, pre rendere effettivamente disponibile lo spazio così liberato.
Nel mio caso, dopo questa pulizia il database si è ridimensionato a 37 MB, poco più della metà.
In realtà nel mio caso sono riuscito a liberare altri 15 MB nel database.
Infatti altri due plugin appesantivano inutilmente il sistema: il per altro utile Broken Link Checker ed un plugin per statistiche mai visto, installato e probabilmente mai consultato, forse troppo vecchio dato che non non sono riuscito a trovarlo nella directory ufficiale dei plugin WordPress.
Alla fine, sono passato dai 70 MB è più di partenza a poco più di 20 MB.
7 risposte
Grazie mille per la risposta Roberto.
Cercherò di dare un occhiata nel phpMyAdmin perchè ho lo stesso identico problema
per via di Akismet.
Mi raccomando un bel backup, eh? 😉
rob
Ciao Roberto, senza mettere le mani nel PhPmyadmin, non esiste un plugin per wordpress che aiuti a risolvere il problema per i meno esperti?
Ciao Marius, ci sono dei plugin che permettono di interagire con il database da dentro WP, io non li amo molto e li sconsiglio per diversi motivi, e alla fine devi compiere le stesse operazioni di phpMyAdmin.
rob
Ciao mi permetto di suggerire anche un’ulteriore via molto più rapida, per cancellare lo spam di Akismet:
Dalla Dashboard->Commenti poi in alto si selezionano i commenti marcati come SPAM e sulla successiva finestra basta cliccare “Empty spam” ed il gioco è fatto 😉
Ciao Carlo, il tuo sistema è valido e indubbiamente più comodo quando i commenti ci sono, e sono marcati come spam.
Il problema, nel mio caso, è che i commenti non c’erano, lo spam era a zero.
rob