Realizzazione e Creazione Siti Wordpress

QUERY SQL PER PULIRE E OTTIMIZZARE DATABASE WORDPRESS



(Aggiornato il 25/11/2015)
In questo articolo vedremo un elenco di query SQL per pulire e ottimizzare il database wordpress da opzioni orfane e ottimizzare il database wordpress che con il passare del tempo immagazzina sempre più dati e di conseguenza sempre più valori e voci che a volte non servono, appesantendo tutta la struttura del database di wordpress.

Pulire e ottimizzare il database wordpress porta a dei benefici in fatto di velocità, sia nelle risposte del database e di conseguenza alla velocità del sito stesso e sia sul risparmio della memoria utilizzata per far funzionare tutte le “interrogazioni” al database collegate tra loro, quindi wordpress collegato con il database ed entrambi collegati al server che gestisce l’intero sito.


 
La maggior parte della query SQL elencate per pulire e ottimizzare il database wordpress sono tra le più conosciute, ma in questo articolo aggiungerò delle query per pulire e ottimizzare le voci chiamate “_transients” che sono delle voci memorizzate in cache per impostazione predefinita da wordpress, per le informazioni ad esempio dei feed RSS e molti altre voci.

Queste voci “_transients” vengono salvate e non più cancellate, quindi anche queste con il passare del tempo aumentano e di conseguenza appesantiscono il database wordpress.

Le query SQL sono state utilizzate ed eseguite manualmente tramite pannello di controllo phpMyAdmin, ovviamente come sempre, non dimenticatevi di eseguire un backup del database di wordpress.

Se avete acquistato un pacchetto hosting di qualità il pannello di controllo phpMyAdmin è sempre presente, in caso non lo fosse, dovrete installare un software che vi permetta di gestire il database wordpress che potete trovare direttamente sul sito di www.phpmyadmin.net dove è disponibile anche una versione da poter utilizzare in demo.

ELENCO QUERY SQL:

Di seguito le query da utilizzare per pulire e ottimizzare database wordpress, ogni singola query elencata sotto ad ogni specifica tabella, agisce e verrà eseguita solo per la tabella specificata.

Le query potete lanciarle sia all’interno del box SQL principale o eventualmente selezionando la tabella interessata e successivamente cliccare su “SQL” e lanciate la query desiderata.

Ricordate che appena avete eseguito la query vi verrà restituito il valore con tutte le query totali cancellate.

TABELLA WP_POSTMETA:

Queste tre query rimuovono tutte le voci inutilizzate all’interno della tabella.

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';

DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';



TABELLA WP_COMMENTMETA:

Questa query rimuove tutte le voci inutili inserite dal plugin askimet.

>DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';

Rimuove tutte le voci che non hanno nessun rapporto con la tabella wp_comments.

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



TABELLA WP_COMMENTS:

Questa query elimina tutti i commenti di spam in una volta sola.

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Questa query elimina tutti i commenti non approvati in una volta sola.

DELETE from wp_comments WHERE comment_approved = '0';



TABELLA WP_POST:

Questa query rimuove tutte le revisioni esistenti dei post.

DELETE FROM wp_posts WHERE post_type = 'revision';

Passiamo adesso alla rimozione delle voci inutilizzate “_transients” contenute all’interno della tabella wp_options, per far capire meglio di cosa sto parlando potete eseguire una query che richiamerà tutte le voci presenti all’interno del database e vi farà vedere quante ne sono presenti.

La query da utilizzare è la seguente, lanciatela e vi restituirà tutte le voci presenti.

SELECT option_name FROM wp_options WHERE option_name LIKE '_transient_timeout%' AND option_value < now();



TABELLA WP_OPTIONS:

Queste query rimuovono tutte le voci “_transients”.

DELETE FROM wp_options WHERE option_name LIKE '_transient_rss_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_rss%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_feed_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_feed_%';
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_browser_%';
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_timeout_browser_%';


VIDEO GUIDA:

Ho preparato un piccolo video per i meno esperti dove potete vedere passo passo come inserire le query e i risultati che restituiscono.

Se avete qualche dubbio o domanda non esitate a commentare e cercherò di rispondere a tutti.



Articoli interessanti:

Come configurare wordpress
Indecisi? lista di siti creati con wordpress
Strumenti gratuiti per analizzare siti internet
Aggiungere css personalizzato tramite campi personalizzati wordpress
Gestire commenti wordpress tramite database e query SQL
Come eseguire il backup per un sito WordPress
Sicurezza wordpress: Protezioni e impostazioni


Vietata la Riproduzione.
Protezione Copyright

Query sql per pulire e ottimizzare database wordpress ultima modifica: 2013-03-25T12:05:28+00:00 da Admin-Fausto
9 Commenti
  1. Questi sono gli articoli che mi entusiasmano ! Non sono un programmatore , mi diletto per passione , ma so riconoscere che hai scritto un ottimo articolo !

  2. Attimo articolo e video. Il mio database aveva raggiunto i 270 mega con la pulizia e ottimizzazione del database Askimet portato il database a 80 mega.

    Articolo che merita 5 stelle ! Aggiunto nei preferiti per il futuro.

    Saluti All

  3. Ho un dubbio quando faccio la pulizia _transients successivamente controllo e trovo altri record (circa un centinaio)

    Quelli anche vanno eliminati? e posso eliminarli direttamente dalla funzione di MySQL? Oppure devo usare i comandi che suggerisci?

    Ottimo articolo, grazie…il più completo.

    • Salve Pietro, se esegui la procedura corretta non dovrebbe rimanere nessun record, se sai “lavorare” su database MySQL ovviamente si può agire direttamente sui record per eliminarli manualmente.

      Ad ogni modo non sono certo quel centinaio di record a creare problemi/rallentamenti al sito/database. Saluti.

  4. Grazie della risposta e scusa il ritardo ma non ho avuto nessuna notifica della tua risposta.

    Ottimo post.
    Lo metto nei segnalibri.

    Grazie

  5. Ciao Fausto, ho visto il tuo video su youtube, visto che sei ferrato sul tema e non son riuscito a trovare da nessuna parte una descrizione specifica su queste cose lo volevo chiedere a te: stavo pulendo il database ma non con le SQL ma utilizzando un plugin completo che si chiama WP-Sweep

    ora ci sono dei termini che non so a cosa si riferiscono:
    1) Orphaned Post Meta – ne ho 625 che mi occupano 1,25%
    2) Orphaned Term Relationship – ne ho 26.714 che occupano il 78.16%

    Ora a cosa si riferiscono, è utile eliminarli per velocizzare il database,? Il secondo mi sembra abnorme poi… Grazie.

    • Ciao Filippo, bhè sono le stesse funzioni che ho elencato io nell’articolo, l’unica differenza è che invece di eseguirle manualmente nel database le esegue il plugin. Ciao.

Lascia un commento