Come aggiungere indici al database di WordPress?
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.

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.

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.

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.

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.

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.

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

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.

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

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.
