Grundsätzlich erhalten Sie Verbindungen im Ruhezustand, wenn :
- ein PHP-Skript stellt eine Verbindung zu MySQL her
- einige Abfragen werden ausgeführt
- Dann erledigt das PHP-Skript einige Dinge, die Zeit in Anspruch nehmen
- ohne die DB zu trennen
- und schließlich endet das PHP-Skript
- was bedeutet, dass die Verbindung zum MySQL-Server getrennt wird
Daher landen Sie im Allgemeinen mit vielen Prozessen im Ruhezustand, wenn Sie viele PHP-Prozesse haben, die verbunden bleiben, ohne tatsächlich etwas auf der Datenbankseite zu tun.
Eine Grundidee also:Stellen Sie sicher, dass PHP-Prozesse nicht zu lange laufen - oder zwingen Sie sie, die Verbindung zu trennen, sobald sie nicht mehr auf die Datenbank zugreifen müssen.
Eine andere Sache, die ich oft sehe, wenn der Server ausgelastet ist:
- Es gehen immer mehr Anfragen an Apache
- was bedeutet, dass viele Seiten generiert werden müssen
- Jedes PHP-Skript stellt, um eine Seite zu generieren, eine Verbindung zur DB her und führt einige Abfragen durch
- Diese Abfragen nehmen mit zunehmender Belastung des DB-Servers immer mehr Zeit in Anspruch
- Das bedeutet, dass sich immer mehr Prozesse stapeln
Eine Lösung, die dabei helfen kann, besteht darin, die Zeit zu verkürzen, die Ihre Abfragen benötigen, indem Sie die längsten optimieren.