Gli significo ogni parola. Ho trovato questa punta semplice di configurazione dopo i giorni continuamente di esame dei ceppi di MySQL (mytop), parte superiore, domande lente del ceppo, mettendo a punto l'inferno dalle applicazioni, leggenti le tonnellate di punte di ottimizzazione di MySQL (e tiranti i miei capelli restanti nella frustrazione) il fotoricettore. Neppure le punte di ottimizzazione di MySQL da MySQL non lo accenna. Ma questa singola punta ha risolto tutti gli miei emicranie di MySQL e problemi di rendimento. Qui sono alcuni dei problemi che ho affrontato:

Il mio assistente dedicato potente stava consumando frequentemente 100% del CPU anche con il carico moderato.
Anche con le tonnellate di ottimizzazione e di indici, ho scoperto che il mio CPU di in ozio dell'assistente va a 0%. Il consumatore delle risorse chiave era MySQL. La parte pi� difettosa era che MySQL rifiutato per servire a nuova richiesta da tutti i filetti era attesa esaurita (affinch� un certo miracolo accadessero?).

Fa c'� ne di quel familiare del suono? Allora colto sopra per le spiegazioni tecniche sanguinose e la punta.

BTW: La mia reazione iniziale a tali problemi era quella standard. Ho esaminato la replica del padrone-padrone di MySQL (questa � migliore della replica parallela che WordPress.com fa per i relativi luoghi) per prendere la cura del carico aumentato. Questo singolo cambiamento di configurazione ha fatto fortunatamente il mio assistente prendere almeno a 10 volte pi� carico che prima.

Nel funzionamento veloce di configurazione di MySQL di difetto (con il motore di MyISAM che � il motore di difetto) le dichiarazioni dell'AGGIORNAMENTO o persino dell'INSERTO possono causare gli impasse seri in tabelle con i lotti di legge (SELEZIONI le dichiarazioni).

MySQL esegue le dichiarazioni dell'AGGIORNAMENTO & dell'INSERTO con la netta priorit�. Le dichiarazioni dell'AGGIORNAMENTO & inoltre dell'INSERTO richiedono la serratura della tabella (per i motori di MYISAM) che richiede persino la tabella indica (dichiarazioni PRESCELTE) per essere completata prima che l'INSERTO & gli AGGIORNAMENTI siano eseguiti. Ci� pu� causare i ritardi lunghi per le dichiarazioni PRESCELTE che attendono dietro una dichiarazione dell'AGGIORNAMENTO o dell'INSERTO, che pu� in se richiedere tempo minimo eseguire, che sta aspettando le dichiarazioni prescelte esistenti di SQL di funzionamento lungo da completare. Cos� persino un singolo INSERTO o AGGIORNAMENTO pu� il rallentamento una base di dati molto caricata ai tempi imprevedibili.

Una soluzione � di usare la dichiarazione IN RITARDO INSERTO per indurre le dichiarazioni dell'INSERTO ad essere fatto funzionare alla priorit� pi� bassa in una coda. La dichiarazione per quanto simile per l'AGGIORNAMENTO non � disponibile. Inoltre nei nostri esperimenti � risultato essere significativamente inferiore alla soluzione che descriver� dopo. Cos� siete pronto?

Suggerisco che aggiungete la seguente linea in /etc/my.cnf (lima di configurazione di MYSQL in Linux; cerchi my.cnf in Windows) drasticamente per ridurre la possibilit� di tali impasse, come precedentemente descritto e migliori la prestazione degli assistenti molto caricati:

max_write_lock_count = 1

Iniziando il mysqld con un valore basso per la variabile di sistema del max_write_lock_count state forzando MySQL temporaneamente per elevare la priorit� di tutti dichiarazioni PRESCELTE che stanno aspettando una tabella dopo che un numero specifico degli inserti alla tabella accade. Ci� permette le serrature COLTE dopo l'un certo numero SCRIVE le serrature. � quello chiaro?

La linea di fondo � che questa configurazione semplice pu� drasticamente migliorare la vostra prestazione di MySQL particolarmente se il vostro assistente � caricato molto. Dovreste provare questo per l'ottimizzazione del tutto l'assistente molto caricato di MySQL che include ma non limitato alle basi di dati del luogo di WordPress per esempio.

Aggiornamento: Qualche gente suggerita usando InnoDB. Tuttavia InnoDB non � una pallottola magica. Pu� essere pi� lento in molte situazioni. MyISAM � tradionally la base di dati pi� veloce con due avvertimenti - tabella che chiude l'edizione come spiegato sopra e la mancanza a chiave di transazioni. Con la difficolt� di cui sopra stiamo affrontando l'emissione di prestazione del centro di MyISAM gli che opera ancora la migliore scelta quando non avete bisogno delle transazioni. Inoltre un certo software come WordPress non sostiene InnoDB.