Geschwindigkeit Datenbank-Verbindung öffnen und schließen
Marc
- php
Ich habe es bis jetzt so gemacht, dass ich in jede Seite eine php-Seite includiere, die meine ganzen Funktionen für mysql-Operationen enthält. Der Bequemlichkeit halber habe ich es so gemacht, dass jedesmal, wenn z.B. die Funktion für das Ändern eines Datensatzes aufgerufen wird, diese eine Datenbank-Verbindung öffnet und auch wieder schließt. Das kann nun pro Seite unterschiedlich oft der Fall sein - so 5 bis 50 Mal, würde ich sagen.
Würde es nun merkliche Geschwindigkeitsvorteile bringen, die Datenbankverbindung einmal beim Start der Seite zu öffnen und erst nach dem Abarbeiten wieder zu schließen?
你好 Marc,
Der Bequemlichkeit halber habe ich es so gemacht, dass jedesmal, wenn
z.B. die Funktion für das Ändern eines Datensatzes aufgerufen wird,
diese eine Datenbank-Verbindung öffnet und auch wieder schließt.
Ouch.
Das kann nun pro Seite unterschiedlich oft der Fall sein - so 5 bis 50
Mal, würde ich sagen.
Doppel-Ouch.
Würde es nun merkliche Geschwindigkeitsvorteile bringen, die
Datenbankverbindung einmal beim Start der Seite zu öffnen und erst nach
dem Abarbeiten wieder zu schließen?
Ja.
再见,
克里斯蒂安
Hi,
Würde es nun merkliche Geschwindigkeitsvorteile bringen, die
Datenbankverbindung einmal beim Start der Seite zu öffnen und erst nach
dem Abarbeiten wieder zu schließen?Ja.
Du meinst PHP ist nicht in der Lage das zu optimieren?
Ja, sowas aber auch!
;->
BTW: kann es sein das Illiad in letzter Zeit etwas der Biss abhanden gekommen ist?
so short
Christoph Zurnieden
你好 Christoph,
Würde es nun merkliche Geschwindigkeitsvorteile bringen, die
Datenbankverbindung einmal beim Start der Seite zu öffnen und erst
nach dem Abarbeiten wieder zu schließen?Ja.
Du meinst PHP ist nicht in der Lage das zu optimieren?
Hehe, das wäre ein bisschen viel verlangt ;)
BTW: kann es sein das Illiad in letzter Zeit
etwas der Biss abhanden gekommen ist?
Weiss nicht – ich fands jetzt eigentlich wie gewohnt ;)
再见,
克里斯蒂安
Hi,
Du meinst PHP ist nicht in der Lage das zu optimieren?
Hehe, das wäre ein bisschen viel verlangt ;)
Gut, eigentlich war meine Spitze nur ein Aufhaenger damit ich meinen Kommentar zum User-Friendly-Comic vom siebzehnten loswerden kann, aber: waere das wirklich so schwierig?
Der einzige Grund die Datenbanverbindung dauernd zu kappen waere es, wenn die DB hart am Abgrund arbeitet, d.h. wenn Verbindungen geloest werden muessen, damit andere auch mal ran koennen. Die Effektivitaet solchen Vorgehens ist aber natuerlich vehement zu bezweifeln und deshalb gibt es schonmal keinen Grund _nicht_ zu optimieren.
Es gibt natuerlich das Problem der Erkenntnis: wie soll der Optimierer wissen auf was er achten soll? Wenn die MySQL-Anbindung ein echtes Build-In ist (nicht kontrolliert, ich trau mich nicht -- befuerchte entdecken zu koennen, das es tatsaechlich so ist ;-), sollte das kein Problem darstellen. Wenn es das nicht ist wird's naturgemaess etwas schwieriger. Da es aber, wie oben festgestellt rein gar keinen Grund gibt sich bei einer Datenbank dauernd ab- und anzumelden waere diese Optimierung eher direkt in die normale DB-Oeffnen-Funktion einzubauen. Fuer so Leute wie mich, die auf Befehlsverweigerung gerne mit standrechtlicher Erschiessung reagieren (apt-get remove $PKG) sollte dann aber noch eine DWYHBTTD-Version[1] mit rein.
BTW: kann es sein das Illiad in letzter Zeit
etwas der Biss abhanden gekommen ist?Weiss nicht – ich fands jetzt eigentlich wie gewohnt ;)
Gut, stimmt auch mal wieder, was der Satiriker _daran_ noch ueberhoehen kann ... ;-)
so short
Christoph Zurnieden
[1] Do What You Hav Been Told To Do.
你好 Christoph,
sorry, aber mir geht es ziemlich übel, hab ne Grippe, mein Kopf fühlt sich
an wie in Watte gepackt. Die Diskussion müssen wir verschieben.
再见,
克里斯蒂安
Hi,
sorry, aber mir geht es ziemlich übel, hab ne Grippe, mein Kopf fühlt sich
an wie in Watte gepackt. Die Diskussion müssen wir verschieben.
*tack-tack-tack*
"Damunherrn, BWV 262! Uuuund bitte!"
Oder isses noch zu frueh?
so short
Christoph Zurnieden
PS
BWV 262 ist irrefuehrend, ist hoechstwahrscheinlich von Johann Pachelbel (1653-1706 in Nuernberg).
CZ
Hi,
da sich deine Datenbankzugriffe ja vermutlich nicht auf 2-3 pro Seite beschränken:
Spricht irgendwas dagegen, eine persistente Verbindung aufzubauen?
generell kostet es extra zeit, eine db-verbindung herzustellen. dies mag bei jedem db-system unterschiedlich sein.
wenn du also zeitlich nacheinander, erst eine db-verbindung öffnest und dann wieder schließt, addieren sich die zeiten folglich.
es ist aber möglich, eine bereits bestehende db-verbindung für eine zusätzliche db-verbindung zu nutzen. in mysql wird dies defaultmäßig erreicht, wenn bei der zusätzlichen db-verbindung die identische verbindungsinformation benutzt wird.
aber wie schließt du die db-verbindung? benutzt du explizit close? bei scriptende werden offene db-verbindungen eh vom php-interpreter geschlossen. ein explizites close wäre nicht nötig.
die alternative wäre die db-verbindung mit pconnect zu erstellen, da hierbei die db-verbindung nicht geschlossen wird.
Danke für die Antworten - Gestern ist es leider zu spät geworden...
Dagegen spricht eigentlich nichts, außer, dass ich sämtliche Seiten mysql-Funktionen ändern muss... :-/ Aber das krieg ich auch noch hin :D