Sven Rautenberg: persistenten Verbindungen (MySQL)

Beitrag lesen

Moin!

Ich schätze, bei dem von dir skizzierten Anwendungsszenario dürften die paar Mikrosekunden zur Herstellung der Verbindung kaum ins Gewicht fallen.

Als letzte Ergänzung: Die persistente Verbindung wird pro Apache-Childprozess aufgebaut. Typischerweise läuft der Apache mit maximal 150 Childs, in extremeren Hostingsituationen aber durchaus auch mit 255 (maximal konfigurierbare Anzahl ohne Eingriff in den Quelltext) oder noch mehr Childs.

Das bedeutet, dass dein erster Skriptaufruf mit Sicherheit eine neue DB-Verbindung herstellen muß, jeder weitere Aufruf, der nicht von dem gleichen Apache-Child bearbeitet wird, muß ebenfalls eine neue DB-Verbindung herstellen.

In einer Share-Hosting-Umgebung (mit PHP-Modul - was zugegeben ungewöhnlich wäre), in der die Zahl der Requests DEINER Website verhältnismäßig gering ist, und die Zahl der Apache-Childs relativ hoch, dürfte es sehr wahrscheinlich sein, dass jeder der Requests deiner Site von einem anderen Apache-Child bearbeitet wird, demnach also trotz mysql_pconnect() jedesmal eine neue DB-Verbindung hergestellt werden muß, die danach dann sinnlos eine gewisse Zeit ungenutzt bleibt, bis ggf. ein Timeout abläuft oder der Apache-Child beendet wird (was bei gewissen Betriebssystemen nach Bearbeitung einer gewissen Anzahl von Requests passiert, und ansonsten auch dann, wenn mehr Childs existieren, als derzeit zur Bearbeitung benötigt werden.

- Sven Rautenberg

--
My sssignature, my preciousssss!