Ik bedoel elk woord van het. Ik vond dit eenvoudige configuratieuiteinde na dagen van onophoudelijk het bekijken logboeken MySQL (mytop), hoogste, langzame logboekvragen, zuiverend de hel uit toepassingen, lezend ton MySQL optimaliseringsuiteinden (en trekkend mijn resterende haren in frustratie) op het Web. Zelfs MySQL vermeldt de optimaliseringsuiteinden van MySQL het niet. En toch loste dit enige uiteinde al mijn hoofdpijnen MySQL en prestatiesproblemen op. Hier zijn enkele problemen die ik gezien:

Mijn krachtige specifieke server verbruikte vaak 100% van cpu zelfs met gematigde lading.
Zelfs met ton optimalisering en indexen, vond ik mijn server nutteloze cpu gaand naar 0%. De essenti�le hulpbronconsument was MySQL. Het slechtste deel was dat MySQL weigerde om nieuw verzoek te dienen aangezien alle draden uitgeput wachten waren (voor ��n of ander mirakel om te gebeuren?).

Om het even welk van die correcte huisvriend? Dan verder gelezen voor de bloederige technische verklaringen en het uiteinde.

BTW: Mijn aanvankelijke reactie op dergelijke problemen was standaard. Ik bekeek hoofd-hoofdreplicatie MySQL (dit is beter dan de master-slave replicatie die WordPress.com voor zijn plaatsen) doet om de verhoogde lading te behandelen. Gelukkig maakte deze enige configuratieverandering mijn server minstens 10 keer meer lading nemen dan voordien.

In configuratie de standaard van MySQL (met motor MyISAM die de standaardmotor) is verklaringen zelfs kunnen de snel lopende van het TUSSENVOEGSEL of van de UPDATE ernstige knelpunten in lijsten met veel veroorzaken leest (UITGEZOCHTE verklaringen).

MySQL voert de verklaringen van het TUSSENVOEGSEL & van de UPDATE met hogere prioriteit uit. Ook vereisen de verklaringen van het TUSSENVOEGSEL & van de UPDATE lijstslot (voor motoren MYISAM) dat vereist zelfs de lijst (UITGEZOCHTE verklaringen) om leest worden voltooid alvorens het TUSSENVOEGSEL & de UPDATES worden uitgevoerd. Dit kan lange vertragingen voor UITGEZOCHTE verklaringen veroorzaken die achter een verklaring van het TUSSENVOEGSEL of van de UPDATE wachten, die zelf minimale tijd kan vergen uit te voeren, die op bestaande lange lopende SQL Uitgezochte te voltooien verklaringen wacht. Zo zelfs kan een ��n enkele TUSSENVOEGSEL of UPDATE slow-down een zwaar geladen gegevensbestand in onvoorspelbare tijden.

��n oplossing is TUSSENVOEGSEL VERTRAAGDE verklaring te gebruiken om de verklaringen van het TUSSENVOEGSEL te veroorzaken om bij lagere prioriteit in een rij worden in werking gesteld. Nochtans is de gelijkaardige verklaring voor UPDATE niet beschikbaar. Ook in onze experimenten bleek het beduidend inferieur aan de oplossing te zijn die ik daarna zal beschrijven. Zo bent u klaar?

Ik adviseer dat u de volgende lijn in /etc/my.cnf toevoegt (Mysql- configuratiedossier in Linux; zoek naar my.cnf in Vensters) de mogelijkheid van dergelijke knelpunten drastisch om te verminderen, zoals hierboven beschreven, en de prestaties van zwaar geladen servers te verbeteren:

max_write_lock_count = 1

Door mysqld met een lage waarde voor de variabele van het max_write_lock_countsysteem te beginnen dwingt u MySQL om de prioriteit van alle UITGEZOCHTE verklaringen tijdelijk op te heffen die op een lijst wachten nadat een specifiek aantal tussenvoegsels aan de lijst voorkomt. Dit staat GELEZEN sloten na een bepaald aantal WRITE sloten toe. Is duidelijk dat?

Het resultaat is dat deze eenvoudige configuratie uw prestaties kan drastisch verbeteren MySQL vooral als uw server zwaar wordt geladen. U zou dit moeten proberen voor het optimaliseren van om het even welke zwaar geladen server MySQL die maar niet omvat die tot WordPress plaats bijvoorbeeld gegevensbestanden wordt beperkt.

Update: Sommige mensen stelden voor gebruikend InnoDB. Nochtans is InnoDB geen magische kogel. Het kan in vele situaties langzamer zijn. MyISAM is tradionally het snellere gegevensbestand met twee waarschuwingen - de kwestie van het lijstsluiten zoals hierboven verklaard en gebrek aan transacties. Met de bovengenoemde moeilijke situatie behandelen wij de kwestie die van kernprestaties van MyISAM tot het maakt opnieuw de betere keus wanneer u geen transacties nodig hebt. Ook steunt wat software zoals WordPress geen InnoDB.