MySQL_Connection erhalten

das aufrecht erhalten hat relativ wenig sinn, da andere operationen den server wesentlich mehr beanspruchen....
 
Ich meine das auch eigentlich so, dass man nicht jedes mal, wenn man nen anderen Menupunkt wählt die SQL-Verbindung neu aufbauen muss! Es dauert nämlich hauptsächlich der Verbindungsaufbau so lange!

///danke übrigens für deine Hilfe!
 
Um es etwas genauer zu erklären: Wenn Webseiten vom Server abgerufen
werden, dann werden auf dem Server mehrere Prozesse gestartet. Verwendest
Du mysql_connect, dann muss der Prozess, der für die Rückgabe einer Seite
zugeteilt wurde, immer wieder die Datenbankverbindung aufbauen. Verwendest
Du stattdessen mysql_pconnect, dann behält der Prozess die
Datenbankverbindung auch nach Seitenrückgabe bei. Wird nun ein neuer
Seitenaufruf dem Prozess zugeteilt, dann wird auf die vorhandene
Datenbankverbindung zugegriffen. Damit das aber funktioniert, müssen
allerdings verschiedene Bedingungen auf dem Server erfüllt sein. Zum Beispiel
muss PHP als Apache-Modul laufen.

Die Beibehaltung der Datenbankverbindung heisst aber nicht, dass Du über
mehrere Scriptaufrufe die Transaktionskontrolle verwenden kannst
(start_sransaction, commit, rollback). Es hilft nur, die Server-Performance zu
verbessern.

snuu
 
Die Beibehaltung der Datenbankverbindung heisst aber nicht, dass Du über
mehrere Scriptaufrufe die Transaktionskontrolle verwenden kannst
(start_sransaction, commit, rollback).

aha! hä? ;) sorry das check ich leider nicht wirklich! Also ich hatte es schon mit MYSQL_PCONNECT() aber ich bin nicht sicher ob ich das richtig verwendet bzw richtig verstanden habe:
Mit MYSQL_CONNECT() wird die Verbindung für jede Query neu aufgebaut? Oder wie?

Also ich kann nicht einmalig ne Verbindung aufbauen, die dann beibehalten werden kann (also z.b. bis das Browserfenster geschlossen wird) oder?

Danke in jedem Fall für die Antworten!
 
Wenn Du nicht weisst, was eine Transaktionskontrolle ist, dann musst Du's auch nicht beachten.
Mit MYSQL_CONNECT() wird die Verbindung für jede Query neu aufgebaut? Oder wie?
Nein, sondern einmal zu Scriptbeginn. Du greifst dann innerhalb Deiner Scripte immer auf die Gleiche Verbindung zu. Aber Du musst je Scriptaufruf einmalig eine Verbindung herstellen. Also immer dann, wenn Der User auf einen neuen Link klickt.
Also ich kann nicht einmalig ne Verbindung aufbauen, die dann beibehalten werden kann (also z.b. bis das Browserfenster geschlossen wird) oder?
Richtig!
 
Nein, sondern einmal zu Scriptbeginn. Du greifst dann innerhalb Deiner Scripte immer auf die Gleiche Verbindung zu. Aber Du musst je Scriptaufruf einmalig eine Verbindung herstellen. Also immer dann, wenn Der User auf einen neuen Link klickt.

Okay! So hab ich mir das früher auch gedacht! Aber was hat dann pconnect für nen Vorteil?

Ums mal zu Ende zu bringen:
Außer mit einem neuen, schnelleren Server lässt sich mein Problem nicht beheben?

///edit:
Cinema4.de << Also so kann man das ja nicht lassen oder?
 
Wie ich bereits schon einmal versucht habe zu erklären: Wenn Du mysql_pconnect verwendest, dann steigert das die Performance des Servers, weil die Verbindung zur Datenbank je Thread nur einmal aufgebaut werden muss und nicht je Scriptaufruf.
 
man merkt mal wieder dass du (im gegensatz zu mir) weisst wovon du redest ;)

aber ich verstehe den unterschied nicht: ein threat ist doch nur ein script (bzw mehrere, die per include zusammengefügt sind aber auch dann reicht doch eine connection)
 
Vereinfacht:
Ohne mysql_pconnect:
-> Anfrage an Apache wird gestellt.
-> Apache startet einen neuen Prozess.
-> Script wird interpretiert.
-> Die Verbindung zur Datenbank wird dabei hergestellt.
-> Nach Scriptende wird die Verbindung zur Datenbank wieder geschlossen.
-> Prozess wird wieder geschlossen (oder noch eine kurze Zeit für neue Anfragen aufrecht erhalten).

Mit mysql_pconnect:
-> Anfrage an Apache wird gestellt.
-> Apache greift auf vorhandenen Prozess zu und verwendet bereits bestehende Verbindung zur Datenbank.
-> Script wird interpretiert.
-> Nach Scriptende wird Verbindung zur Datenbank beibehalten und der Prozess wird nicht geschlossen.

Schlussfolgerung: Der Server verschwendet weniger Zeit darauf, je Scriptaufruf einen neuen Prozess zu starten und für diesen die Datenbankverbindung extra auf- und abzubauen.
 
Zurück