In principe krijgt u verbindingen in de slaapstand wanneer:
- een PHP-script maakt verbinding met MySQL
- sommige zoekopdrachten worden uitgevoerd
- dan doet het PHP-script dingen die tijd kosten
- zonder de verbinding met de database te verbreken
- en ten slotte eindigt het PHP-script
- wat betekent dat de verbinding met de MySQL-server wordt verbroken
Dus je eindigt over het algemeen met veel processen in een slaapstand als je veel PHP-processen hebt die verbonden blijven, zonder daadwerkelijk iets aan de database-kant te doen.
Een basisidee, dus:zorg ervoor dat je geen PHP-processen hebt die te lang duren -- of dwing ze om de verbinding te verbreken zodra ze geen toegang meer hebben tot de database.
Nog iets dat ik vaak zie als de server wat wordt belast:
- Er komen steeds meer verzoeken naar Apache
- wat betekent dat er veel pagina's moeten worden gegenereerd
- Elk PHP-script, om een pagina te genereren, maakt verbinding met de DB en voert enkele query's uit
- Deze zoekopdrachten nemen steeds meer tijd in beslag, naarmate de belasting van de DB-server toeneemt
- Wat betekent dat meer processen zich blijven opstapelen
Een oplossing die kan helpen, is de tijd die uw zoekopdrachten in beslag nemen te verkorten door de langste te optimaliseren.