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.
37 commenti
Trackback e pingback
[...] This post was mentioned on Twitter by Cinzia Sgariglia, Your Inspiration Web, Emanuele Calì, Francesco Magalini, nando pappalardo and…
Social comments and analytics for this post... This post was mentioned on Twitter by EmaWebDesign: RT @nando_p: RT @YIW Come…
[...] blog che si sta affermando sempre di più nella blogosfera, ha realizzato un tutorial su come ottimizzare il database,…
[...] 04) Come ripulire il database del nostro blog dal materiale inutile? [...]
[...] Oggi vedremo come rimediare e ottimizzare il tutto sulla base delle nostre effettive esigenze.Come ripulire il database del nostro…
[...] [...]