Come aggiungere indici al database di WordPress?

21 mag 2012, 20:38:35
Visualizzazioni: 17.3K
Voti: 1

Ho ricevuto un messaggio da Hostgator che mi informa della sospensione del mio account a causa del carico eccessivo sui loro server. Questa è circa la quinta volta che succede. Sono su un server condiviso.

Mi hanno detto che il problema potrebbe essere risolto semplicemente aggiungendo nuovi indici al database o ottimizzando il database con altre tecniche. Ho già provato a usare query SQL e l'opzione "ottimizza" in phpMyAdmin per ottimizzare il mio database, ma non ha aiutato.

Ho anche installato Super Cache come mi è stato consigliato, ma nemmeno questo ha risolto il problema.

Ora voglio provare ad aggiungere indici al database. Come posso farlo? Qualcuno sa come fare, per favore? È urgente.

Grazie.

1
Commenti

Per ottimizzare le query, è necessario prima sapere quali query vengono eseguite. Inizia installando il plugin Debug Bar, caricando una pagina problematica, quindi cliccando sul link Debug nella parte superiore destra della barra di amministrazione. Dovrai anche aggiungere define('SAVEQUERIES', true); al tuo file wp-config.php. Questo ti permetterà di vedere quali query vengono eseguite e quanto tempo impiegano a essere eseguite.

Otto Otto
22 mag 2012 00:11:31
Tutte le risposte alla domanda 3
7

Il database di WordPress è già indicizzato. Consulta questo articolo del codex per un elenco dettagliato degli indici per tabella: http://codex.wordpress.org/Database_Description

E anche se non lo fosse, dovresti sapere quali query vengono eseguite per poter aggiungere efficacemente gli indici. Ciò significa che non esiste una soluzione rapida: dovresti imparare come funziona l'indicizzazione, individuare quali query hanno prestazioni scarse e procedere da lì.

Se hai davvero problemi con query lente, molto probabilmente dipende da un plugin o un file di tema scritto male che stai utilizzando. Prova a disabilitare tutti i plugin e a passare al tema predefinito, per vedere come influisce sulle prestazioni. Se il tuo sito risulta ancora troppo impegnativo per il tuo hosting condiviso (con un tema predefinito e nessun plugin attivo), devi cambiare host.

21 mag 2012 22:11:02
Commenti

Penso che sappia che è già indicizzato, ma non è indicizzato abbastanza bene. Diciamo che meta_value non è indicizzato e quasi tutti i siti con ricerche personalizzate cercano in quei campi che non sono indicizzati, quindi è lento. Quindi se stai cercando di dire che WP ha fatto un buon lavoro su questo - non sono d'accordo. Ovviamente non possiamo vedere quali campi questo ragazzo sta cercando, ci aiuterebbe.

Tommixoft Tommixoft
21 mag 2012 22:14:06

Dal tono della sua domanda, non credo che lo sappia. Sembra che speri che ci sia una specie di comando "aggiungi indici" che puoi eseguire per migliorare le prestazioni, e sto cercando di spiegare che è più complicato di così. Deve comprendere le sue query prima di decidere se può migliorarne le prestazioni o meno con indici aggiuntivi. Non sembra che sia in grado di farlo, visto che sta letteralmente chiedendo come aggiungere indici, non QUALI indici aggiungere o perché. In ogni caso, sì, WordPress è perfettamente indicizzato per un'installazione che utilizza il tema predefinito senza plugin.

MathSmath MathSmath
21 mag 2012 22:56:31

Ciao Ragazzi, grazie per le risposte. Sapevo che WordPress era già indicizzato perché il mio host ha detto: "Risolvere questa situazione potrebbe essere semplice come aggiungere indici aggiuntivi al tuo database, ottimizzare le query utilizzate o qualcosa di altrettanto facile." "Indici aggiuntivi" era la frase che hanno usato. Comunque, in realtà è il post-new.php (per i post) che ha causato il problema di carico elevato. Ogni volta che clicco su "Aggiungi nuovo", carica all'infinito (con una schermata bianca vuota) e poi devo chiudere la scheda e riprovare finché non si apre effettivamente la pagina. Come posso risolvere questo problema con più indici? Grazie.

Sosthenes Kwame Boame Sosthenes Kwame Boame
21 mag 2012 23:41:04

Il sito ha poco più di 8.000 articoli e riceve circa 2000 visitatori al giorno che visualizzano la pagina tra le 5.000 e le 8.000 volte ogni giorno. La dimensione del database è di circa 66 MB. Condivido queste informazioni nel caso possano essere utili.

Sosthenes Kwame Boame Sosthenes Kwame Boame
21 mag 2012 23:44:06

@KwameBoame Non puoi sapere con certezza che PUOI risolvere il problema aggiungendo più indici. L'indicizzazione non è la soluzione a tutti i problemi legati a MySQL, e se non conosci esattamente qual è il tuo problema, non puoi sapere che indici aggiuntivi lo risolveranno. Potrebbe non avere nulla a che fare con MySQL - potrebbe essere un ciclo difettoso in un plugin che fa eseguire una query perfettamente valida troppe volte. Chi lo sa. Se il tuo host è sicuro che si tratti di un problema con una delle tue query, chiedigli di attivare la "registrazione delle query lente" e di fornirti il log. Nel frattempo, ti suggerirei ancora di disabilitare tutti i plugin per vedere se questo risolve il problema.

MathSmath MathSmath
22 mag 2012 01:17:19

@MathSmath grazie per il tuo suggerimento. Ha funzionato. Il plugin Super Cache era il colpevole. Faceva sì che post-new.php eseguisse diverse centinaia di query fino al timeout. Ora devo cercare un plugin di caching migliore. Grazie per il tuo aiuto, amico mio.

Sosthenes Kwame Boame Sosthenes Kwame Boame
23 mag 2012 10:50:31

@KwameBoame Nessun problema. Sono contento che tu abbia risolto! Puoi per favore segnare la mia risposta come accettata? Grazie!

MathSmath MathSmath
23 mag 2012 19:30:13
Mostra i restanti 2 commenti
2

Penso che ti abbiano dato una soluzione molto generale a un problema più specifico. WordPress utilizza più tabelle per interrogare post, pagine, ecc. Non sono sicuro che dovresti davvero aggiungere nuovi indici. Inizierei mettendo il sito in modalità di manutenzione e testandolo pagina per pagina. Devi capire quali pagine stanno eseguendo query molto grandi e fermarle, impaginarle o modificarle. L'altra possibilità è che tu abbia effettivamente costruito un sito di successo, e nessuna quantità di ottimizzazioni al mondo ti darà più banda. Potresti dover sborsare un po' più di soldi e ottenere un server dedicato. Se ciò non è possibile, ancora una volta, devi minimizzare il numero di query al database che stai effettuando.

21 mag 2012 21:18:19
Commenti

Capisco, e sono d'accordo fino a un certo punto. Dovrebbe comunque essere in grado di gestire il suo sito senza causare un carico eccessivo sul server; ma ancora una volta, potresti letteralmente avere troppe persone che visitano il tuo sito (il che è una cosa positiva) e hai bisogno di passare a un pacchetto hosting più performante. L'indicizzazione di WordPress è abbastanza buona da gestire un sito piuttosto grande senza problemi; ma anche questo dipende dai plugin che eseguono query e dal tema utilizzato. Inoltre, se hai 100 plugin installati e attivi, questo non aiuterà. La soluzione semplice: passa a un hosting più performante rispetto a quello economico. La soluzione difficile: disattiva i plugin e ottimizza le query

Aaron Bell Aaron Bell
21 mag 2012 22:23:55

@AaronBell, Ciao, per favore guarda la mia risposta sopra (a Tommix e Mathsmath) e vedi se c'è un modo per sistemare il mio sito. Grazie.

Sosthenes Kwame Boame Sosthenes Kwame Boame
21 mag 2012 23:45:47
1

Ti consiglio di utilizzare il plugin http://wordpress.org/extend/plugins/wp-super-cache/ se il tuo sito web non è molto dinamico e viene aggiornato, ad esempio, una volta al giorno. Questo plugin crea file statici dal contenuto dinamico, riducendo quasi completamente le query al database. (puoi scegliere cosa non deve essere memorizzato nella cache). Rende il sito web estremamente veloce. [MA fai un backup prima dell'installazione]

Qui ho fatto una foto che mostra come rendere un campo indicizzato http://s10.postimage.org/wxjn9u2uh/index.jpg MA - NON TUTTI I CAMPI possono o devono essere indicizzati. Un campo indicizzato deve avere una dimensione specifica. L'indicizzazione deve essere applicata ai campi su cui effettui frequentemente delle query.

21 mag 2012 21:12:29
Commenti

L'OP afferma di aver già provato a utilizzare Super Cache e che non ha risolto il problema.

mrwweb mrwweb
21 mag 2012 23:18:13