Comandi SQL per ottimizzare database WordPress

Comandi SQL per ottimizzare database WordPress

Come vi avevo già promesso, vi indico le query, o comandi, di SQL per ottimizzare il database WordPress.

Vi metto subito le query con la descrizione univoca di ogni funzione, vi segnalo tuttavia che è stato ancora l’utente Luca Zilioli ad indicarmi questa pagina.


La maggior parte dei comandi SQL elencati per pulire ed ottimizzare il database WordPress, sono tra i comandi più utili ed utilizzati, nonché famosi, per alleggerire il database e quindi poterlo velocizzare.

Ma come mai “velocizzare”.

Il file del database SQL, non è nient’altro che un enorme file di testo con elencati tutti i dati del sito.
Questo file di testo, pur essendo unicamente solo testo e pesando relativamente poco (si parla di pochi MB), riesce a mandare in crash i programmi di video scrittura più comuni se non sono installati su macchine potenti.
Oltre a causare rallentamenti sul server, questi enormi file, dopo parecchio tempo saturano la memoria del vostro spazio dedicato al database, nel mio caso 2 GB.

Tuttavia quando noi scriviamo degli articoli, e magari salviamo delle bozze, queste bozze vanno ad appesantire inutilmente il database. Questi salvataggi sono chiamati in gergo “_transients”, ovvero delle voci di transito tra la bozza e la versione finale dell’articolo.

Prima di continuare la lettura di questo breve articolo, vi consiglio tuttavia di effettuare un backup del vostro database e di scaricarvelo in locale, in modo tale da avere una copia di sicurezza a cui tornare in caso di pasticci.

Un primo comando che posso consigliarvi, sempre dopo aver eseguito un backup del database, è quello che vi consente la rimozione di tutte le revisioni (o versione) degli articoli che avete pubblicato, versioni quindi non finali degli articoli che state scrivendo e che come ho detto sopra, occupano inutilmente spazio sul vostro server SQL.

” DELETE FROM wp_posts WHERE post_type = “revision”; “

Oppure potete modificare il file wp-config.php, aggiungendo questa stringa di codice che definisce il numero massimo di revisioni che il database salva.

” define(‘WP_POST_REVISIONS’, 2); ”

Dove il valore numerico può essere sostituito con “false”, disabilitando automaticamente tutte le revisioni, comando azzardato ma che elimina in un colpo solo tutte le versioni future e passate.

Un’altra riga di codice comodo da inserire nel file wp-config, può essere anche una che consente un salvataggio automatico dell’articolo con una determinata cadenza temporale.

” define(‘AUTOSAVE_INTERVAL’, 1000); ”

Ovviamente nel caso stiate leggendo questo articolo, immagino siate interessati al parametro false o al massimo 2, come nel mio caso ed a non avere autosalvataggi che occupano spazio e tempo del server inutilmente.


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.

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”.

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

Questi sono i risultati che ho avuto io eseguendo queste query sul mio database:

SQL ottimizzato

 

 

Buon lavoro e a presto!

 

In ogni caso, questo articolo è stato scritto grazie ad un articolo che ho trovato molto interessante di sullo stesso argomento: http://www.unsitoweb.it/query-sql-per-pulire-e-ottimizzare-database-wordpress.html.

Sito di Fausto, che ritengo molto interessante per moltissimi argomenti legati alla programmazione web, dati da una persona che lavora in questo campo da quasi due decenni.

About the Author:

Leave A Comment