Il primo intervento di ottimizzazione del database riguarda le
tabelle in esso contenute:
Un volta effettuato l'accesso al pannello
mysql.aruba.it con i
dati del database utilizzato da WordPress, procedere come segue:
- selezionare tutte le tabelle scegliendo se selezionati Ripara tabella;
- ripetere nuovamente la procedura scegliendo la voce Ottimizza tabella invece di Ripara tabella;
- accedere ad ogni singola tabella e cliccando sul pulsante in alto Operazioni: si ha la possibilità di variare il Motore di Memorizzazione da MyIsam a InnoDB;
L’operazione dovrà essere eseguita su tutte le tabelle presenti.
Questo motore di memorizzazione è usato principalmente in applicazioni dove l'integrità dei dati è importantissima (ha infatti vincoli più stringenti sulla data integrity) oppure dove ci sono molte INSERT o UPDATE, dato che InnoDB esegue lock sulla riga e non sulla tabella intera, evitando di lasciare delle SELECT appese durante le update.
In tale modo si ottiene un minore overhead e migliori performance nell’uso simultaneo del database da parte di più utenti/visitatori.
È consigliabile, inoltre, verificare che non siano presenti
query particolarmente lente.
Può essere installato il plugin
Query Monitor, che consente di monitorare le query.
Qualora si riscontrino problemi su questo aspetto e il plugin segnali slow query (quelle che impiegano un tempo di esecuzione superiore a 0,1 secondi), è necessario individuare il plugin che crea tale query.
Successivamente, deve essere eseguita un’analisi sul plugin e la situazione contingente valutando l'aggiornamento del plugin e la compatibilità di esso con la versione di WordPress.
Nel caso in cui si riscontrasse lentezza anche nel back end, è consigliabile verificare la dimensione della tabella
prefix_options che solitamente dovrebbe essere inferiore a 3MB; in caso di dimensioni maggiori occorre controllare la presenza di
record transient.
Qualora questi fossero presenti, in ottica di ottimizzazione, è consigliabile eliminare questi record (previo backup della tabella stessa); di seguito la query per rintracciarli (prestare attenzione al prefisso delle tabelle):
SELECT * FROM `wp_options` WHERE `option_name` LIKE '%_transient_%'
Ottenuto il risultato, selezionarli tutti con l'apposita funzione
Seleziona tutti in basso e cliccare su
Elimina a destra.
Una volta eliminati i record transient ottimizzare la tabella per eliminare anche i dati in eccesso (overhead).
Tale operazione dovrebbe essere eseguita periodicamente, in quanto i transient_data sono creati dall'uso delle estensioni aggiuntive e pertanto con il tempo la tabella prefix_options continuerà a popolarsi di tali dati.
Controllare anche se sulla tabella prefix_posts sono presenti molti record di tipo
revision (specialmente in caso di testate giornalistiche). Per verificarlo eseguire la query:
SELECT * FROM `wp_posts` WHERE `post_type` LIKE 'revision'
Se presenti, eliminarli selezionandoli tutti con l'apposita funzione
Seleziona tutti in basso e cliccando su
Elimina a destra.
Per ottimizzare le tabelle ed eliminare i record della tabella prefix_posts / prefix_postmeta / prefix_term_relationships, è possibile utilizzare uno dei plugin scaricabili dal sito ufficiale al
presente link.
Una volta eliminate le revision è necessario ottimizzare le tabelle per eliminare i dati in eccesso (overhead).
È consigliabile inoltre verificare il motore utilizzato e, nel caso fosse MyISAM, modificarlo in InnoDB. Per ulteriori dettagli consultare la
guida dedicata.