Come ripulire il database del nostro blog dal materiale inutile?
L’articolo di oggi non sarà particolarmente prolisso perché bastano davvero poche operazioni per ottimizzare e velocizzare al meglio il nostro blog. Se gestisci un blog utilizzando la piattaforma WordPress sicuramente ti sarai accorto anche tu che con il passare del tempo le dimensioni del database iniziano a diventare considerevoli, anche se non hai pubblicato una quantità smisurata di post.
A lungo andare questo compromette le prestazioni del nostro blog con conseguente aumento dei tempi di caricamento. Oggi vedremo come rimediare e ottimizzare il tutto sulla base delle nostre effettive esigenze.
A cosa è dovuto l’aumento così sconsiderato delle dimensioni del database di WordPress?
Innanzitutto cerchiamo di capire da cosa dipende questo incremento eccessivo delle dimensioni del nostro database. Se andiamo ad analizzare nel dettaglio le dimensioni delle singole tabelle, notiamo subito che la tabella che occupa più spazio è quella relativa ai post, denominata appunto “wp_posts”.
Come mai questa tabella ha delle dimensioni così notevoli nonostante non abbiamo pubblicato molti post?
WordPress – dalla versione 2.6 in poi – ha introdotto un’utilissima funzione che permette di tenere traccia di tutte le revisioni realizzate durante la pubblicazione di un articolo. Ogni qual volta si salva una bozza dell’articolo sull’editor di WordPress, questa viene memorizzata nel database, e fin qui tutto sembra abbastanza scontato. Ma al successivo salvataggio della stessa bozza, questa non sovrascrive la bozza/revisione già salvata in precedenza, bensì viene creata una nuova revisione. E tutto questo avviene per ogni salvataggio.
Nell’immagine che riporto sotto puoi vedere un esempio delle revisioni salvate per un articolo.

Come puoi notare dall’immagine sopra, è come se in realtà avessi salvato diciassette articoli diversi invece che uno.
Questa funzionalità è stata introdotta per dare la possibilità all’autore di ripristinare in qualsiasi momento una qualunque tra le revisioni salvate in precedenza.
Ma cosa comporta l’aumento delle dimensioni del nostro database?
L’aumento delle dimensioni del nostro database sicuramente non porta nulla di buono per molteplici motivi, te ne elenco solo alcuni tra quelli degni di nota:
- Molti servizi di hosting limitano lo spazio destinato al database facendo pagare una quota supplementare per ogni TOT megabyte di spazio aggiuntivo richiesto (di conseguenza puoi ritrovarti a sborsare una cifra annuale superiore a quella che effettivamente serve per il mantenimento del tuo blog).
- La velocità di caricamento del tuo blog con il tempo diminuisce sempre di più e questo è dovuto al fatto che le query eseguite sul database – al fine di estrarre gli articoli dalla tabella (wp_posts) che li contiene – impiegano più tempo per essere portate a termine poiché la ricerca è effettuata su molti più record.
- I file di backup da archiviare hanno dimensioni sempre più grandi e, in caso di necessità, ripristinare online il backup di un database di grosse dimensioni comporta la perdita di molto tempo.
Come posso ridurre le dimensioni del database e ottimizzare così il mio blog WordPress?
Esistono dei plugin come delete revision che permettono di cancellare tutte le revisioni che sono state salvate all’interno della tabella “wp_posts”. Se non vuoi appesantire il tuo blog con l’installazione dell’ennesimo plugin, puoi ottenere lo stesso risultato eseguendo una semplicissima query all’interno del tuo database. Vediamo come farlo insieme.
Prima di iniziare controlla la dimensione della tua tabella “wp_posts” giusto per renderci conto di quanto spazio sarà guadagnato. La dimensione attuale della tabella “wp_posts” del database di YIW è 59,4 Mb.

Primo step: backup del database
Come prima cosa, esegui il backup del tuo database: questa è una regola fondamentale che non deve essere mai tralasciata ogni qual volta si mettono le mani all’interno di un database. In questo modo se qualcosa non dovesse andare per il verso giusto è sempre possibile ritornare allo stato iniziale.
Secondo step: esegui la query che cancella tutte le revisioni
Scrivi la seguente query all’interno del client che utilizzi per gestire il tuo database (generalmente phpmyadmin su molti servizi di hosting):
DELETE FROM wp_posts WHERE post_type = "revision";
In questo modo stiamo dicendo di cancellare tutti i post della tabella “wp_posts” che hanno impostato il campo “post_type” uguale a “revision”, ovvero tutte le revisioni salvate all’interno della cartella “wp_posts” in quanto, all’interno di questa cartella, solo le revisioni hanno il campo “post_type” impostato a “revision”.
Esegui la query e vedrai che saranno cancellati tutti i record superflui che contribuivano ad aumentare eccessivamente le dimensioni del tuo database.
Terzo step: ottimizza la tabella wp_posts
Adesso esegui quest’altra query per ottimizzare la tabella “wp_posts” appena ripulita:
OPTIMIZE TABLE wp_posts;
Controlla la nuova dimensione della tabella in questione. Sul database di YIW la nuova dimensione della tabella “wp_posts” adesso è 3,4 Mb, come puoi vedere dalla foto che segue. Un bel guadagno di spazio, non credi?

Personalizzazione delle revisioni di WordPress sulla base delle proprie esigenze
Leggendo le API di WordPress in merito alla funzione delle revisioni, ho visto che è possibile personalizzare il numero massimo di revisioni che desideriamo salvare per ciascun articolo, oppure disabilitare del tutto questa funzionalità.
In questo modo, mediante l’utilizzo della costante denominata “WP_POST_REVISIONS” che va definita sul file di configurazione principale (wp-config.php) di WordPress, possiamo gestire le revisioni sulla base delle nostre effettive esigenze.
Questa costante accetta tre valori:
- True (valore di default), -1: memorizza tutte le revisioni;
- false, 0: non memorizza nessuna revisione (eccetto un salvataggio automatico per articolo);
- (int) > 0: memorizza il numero specificato di revisioni (più un salvataggio automatico) per articolo. Le vecchie revisioni vengono cancellate automaticamente.
Vediamo come implementarla all’interno del nostro file di configurazione.
Apri il file denominato “wp-config.php” e dopo la seguente definizione:
/** Il tipo di Database Collation. Da non modificare in caso di dubbi. */
define('DB_COLLATE', '');
Aggiungi la seguente riga per disabilitare la funzione delle revisioni:
define('WP_POST_REVISIONS', false);
Oppure la seguente riga per definire il numero massimo di revisioni per ciascun articolo impostandolo a tre, giusto per fare un esempio:
define('WP_POST_REVISIONS', 3);
Conclusione
Meno male che avevo fatto la premessa di non essere troppo prolisso, perdonami, ma credo di non esserci proprio riuscito.
Oggi hai visto che con qualche semplice espediente è possibile ottimizzare al meglio la manutenzione del database del tuo blog. Molto spesso basta davvero poco per ottenere risultati degni di nota.
35 commenti
Trackback e pingback
-
Tweets that mention Come ripulire il database del nostro blog dal materiale inutile? | Your Inspiration Web -- Topsy.com
[...] This post was mentioned on Twitter by Cinzia Sgariglia, Your Inspiration Web, Emanuele Calì, Francesco Magalini, nando pappalardo and ... -
uberVU - social comments
Social comments and analytics for this post... This post was mentioned on Twitter by EmaWebDesign: RT @nando_p: RT @YIW Come ripulire ... -
Tutorial Wordpress – Come ripulire il database del nostro blog dal materiale inutile? | Fedeweb
[...] blog che si sta affermando sempre di più nella blogosfera, ha realizzato un tutorial su come ottimizzare il database, ... -
I migliori post della settimana #55 | EmaWebDesign :: Web Programming / Web Design / SEO
[...] 04) Come ripulire il database del nostro blog dal materiale inutile? [...] -
Come ripulire il database del nostro blog dal materiale inutile? | La Dispensa
[...] Oggi vedremo come rimediare e ottimizzare il tutto sulla base delle nostre effettive esigenze.Come ripulire il database del nostro ... -
GUIDA: Ripulire il database del nostro blog dal materiale inutile | hostinformatico.com
[...] [...]





Questa mi è davvero nuova. Devo correre a controllare il mio database :D
L’ho scoperto durante un processo di backup manuale, un database con 50mb di contenuti in così poco tempo mi sembrava davvero eccessivo e analizzando più nel dettaglio ho capito di cosa si trattava e in qualche modo ho cercato di porre rimedio.
Ciao Nando, complimenti perchè questo articolo è veramente utile a chiunque utilizzi WordPress.
Grazie.
Ciao Nicolas e grazie!
Spero possa servire, soprattutto a chi utilizza WordPress da più tempo.
ciao, questo articolo è da salvare sicuramente tra i preferiti, da rileggere almeno una volta all’anno ;)
Ciao Sharon, piacere di essere stato utile in qualche modo ;)
Me ne ero accorto anche io qualche settimana fa, al mio primo utilizzo di wordpress… io di solito, per molte cose già fatte, sono sempre curioso e vado a vedere come viene gestito il database e come tutte le informazioni vengono memorizzate.
Notavo giust’appunto questa tabella e notavo che c’era una cinquantina di righe, mentre ancora avevo messo soltanto 2 articoli :|
Inizialmente mi volevo accertare che quella era davvero la tabella degli articoli, ma vedendo che era quella volevo capire perchè c’erano tutte ste righe… guardando meglio nel pannello, vedevo che wordpress memorizzava tutte le revisioni fatte e da li poi ho capito :D
E questo articolo è davvero molto utile, perchè veramente chi non lo sa, si tiene un mega database, per un blog di 5 articoli… non mi sembra proprio il caso :D
Pensa se cominci a fare più di 100 o addirittura 500 articoli, senza che ti accorgi di nulla :S
Antonio, hai fatto il mio stesso pensiero: chi ha scritto più di mille articoli (utilizzando la versione 2.6 o superiore) si troverà un database immenso pieno zeppo di ormai inutili revisioni.
Io per farlo utilizzo un plugin, si chiama Wp-optimize permette di risparmiare un sacco di tempo.
Oltre a cancellare le revisioni inutili cancella commenti non approvati e di spam e ottimizza tutte le tabelle del db Mysql.
Non da fastidio come plugin, ve lo consiglio
Quoto!
Anch’io uso WP-optimize e lo stra-consiglio.
Ciao yeswebcan, si ho visto che ci sono degli ottimi plugin in giro che permettono di ottimizzare il database di wordpress, e quello che hai citato è sicuramente tra i migliori.
Io però preferisco, quando possibile, evitare di installare l’ennesimo plugin (ne utilizziamo già tanti, circa venti, che reputo quasi indispensabili) per ridurre di appesantire ulteriormente i tempi di caricamento.
Dopo aver configurato un numero massimo di tre revisioni per articolo (che ritengo più che sufficienti) non credo che ci sarà la necessità di intervenire ogni settimana per ripulire, poi basta eseguire la query anche una sola volta a semestre, o addirittura una volta all’anno.
Per quanto riguarda l’ottimizzazione delle tabelle, anche quelle preferisco farle una volta a semestre e direttamente dal cPanel (il pannello di controllo fornito per la gestione del nostro hosting), con un semplice clic ottimizza tutte le tabelle del database e così mi evito di installare un altro plugin.
Comunque grazie per aver segnalato il plugin che può sempre tornare comodo a tanti. A presto.
Caro Nando, consiglio prezioso… spesso ci si preoccupa di realizzare un telaio e un design perfetto e ci si dimentica del motore.
Ciao Pier, la tua metafora è azzeccatissima, sei riuscito a rendere perfettamente l’idea di un errore che, ahimè, spesso commettiamo senza neanche accorgercene.
Grazie per essere passato ;)
fatto!
grazie Nando
pazzesco ero sui 60m in meno di un mese
:)
Prego, iteand. Siamo qui per questo, condividere ogni cosa che ci può tornare utile.
Sarei proprio curioso di conoscere le dimensioni del database di qualcuno che ha uno/due anni di attività con molti articoli pubblicati. =)
Tutorial molto interessante e ben fatto. Ci sono riuscito anche io, che sono un dummy del php.
Ottimizzare il database non solo favorisce un più veloce caricamento della pagina web, ma è un vantaggio anche per il posizionamento. I motori di ricerca, Google incluso, preferisce i siti veloci, ben fatti e che seguono le norme W3c….
Ciao Mauro, grazie e benvenuto su YIW!
Si, esatto, la velocità di caricamento delle pagine, come giustamente fai notare, ha un’influenza positiva su tanti aspetti di un sito web, compreso il posizionamento delle SERP.
Qui c’è l’intervista in cui Matt Cutts accenna all’argomento ufficialmente.
Grazie per la precisazione, Mauro e per essere passato.
A presto
Grazie Nando, mi sono trovata nella situazione di dover pulire un po’ di revisioni e ricordavo l’articolo =)
E così tra una barretta di cioccolata e l’altra ripulisci il database, eh? =)
Ma nononono!
Niente barretta di cioccolata!
… solo un bel ghiacciolino alla ciliegia, che fa digerire ed e’ bello fresco, anche se il tempo non e’ il massimo della vita =)
Ottimo articolo, GRAZIE!
Giuseppe, grazie a te e felice di esserti stato d’aiuto.
Grazie x il tutorial.Non sapevo questo.Devo leggere un po il FAQ di plugin “delete revision” funziona in la stesa maniera come hai fatto vedere manualmente?
PS : sorry for my bad italian language ;)
Ciao Sponky, si il plugin “delete revision” più o meno dovrebbe svolgere quanto descritto in questo articolo.
Se preferisci puoi leggere la versione in lingua inlgese di questo articolo.
Grazie Nando! Ho fatto una prova ottenendo un buon risultato … a titolo statistico la tabella dei mie posts è stata ottimizzata del 66%
Ciao emanuela, di nulla, figurati. Grazie a te per essere passata e per aver condiviso la tua statistica di ottimizzazione.
grazie mille, spiegato molto molto bene e cosa non da poco… UTILISSIMO!
Appena provo a vedere quanto mi occupa il database ti faccio sapere
ciao roberto, benvenuto su yiw!
facci sapere quanto spazio sei riuscito a recuperare.
io su un database di 2,8 mega recupero ogni settimana circa 0,5/0,6 mega… con relativa velocizzazione di caricamento del sito! uno che non ha mai ottimizzato il database… potrebbe restare sorpreso dall’enorme spazio recuperato