Autor |
Nachricht |
elm4ward
Threadersteller
Dabei seit: 07.12.2002
Ort: munich
Alter: 42
Geschlecht:
|
Verfasst Fr 03.03.2006 13:10
Titel [php] Erfahrung mit mysql_pconnect |
|
|
Ich wollte mal kurz nachfragen
was ihr so an Erfahrungen habt mit
der persistenten Verbindung.
Wie regelt ihr das schließen der Verbindung?
Wie regelt ihr das Errorhandling? ( unter php4 )
...
Die Performance sollte ja um einiges hochschnellen,
aber wie schaffe ich es die Verbindung wirklich sicher
zu beenden am Ende jeder Seite?
php.net
Zitat: | Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mysql_close() will not close links established by mysql_pconnect()). |
Danke schon ma für den einen oder anderen Tipp[/code]
|
|
|
|
|
Eistee
Administrator
Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht:
|
Verfasst Fr 03.03.2006 13:14
Titel
|
|
|
Der Sinn eines pconnets ist es, die Verbindung nach der Scriptlaufzeit nicht zu schliessen! Denn der connect zur Datenbank verbraucht oft bis zu 10x mehr Ressourcen als die folgenden Queries.
Hast du dich nur falsch ausgedrückt, oder soll ich nochmal versuchen, in einfachen Worten zu erklären, worum es bei pconnects geht? (Hoffentlich hab ichs wirklich durchschaut )
|
|
|
|
|
Anzeige
|
|
|
elm4ward
Threadersteller
Dabei seit: 07.12.2002
Ort: munich
Alter: 42
Geschlecht:
|
Verfasst Fr 03.03.2006 13:20
Titel
|
|
|
danke für die schnelle antwort.
naja im grunde hab ich mich wahrscheinlich sowohl falsch
ausgedrückt, als auch noch zuwenig hintergrundwissen zum thema persitente verbindung.
=)
mir gehts im grunde darum, ob jeder user diese eine persistente verbindung nutzt,
bzw wenn das nicht der fall ist, und zuviele verbindungen aufgebaut werden,
wie verfahr ich mit den geöffneten verbindungen ?
|
|
|
|
|
Eistee
Administrator
Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht:
|
Verfasst Fr 03.03.2006 14:30
Titel
|
|
|
Jeder Script Aufruf mit einem pconnect macht Folgendes:
- Hallo Mysql, gibt es grad ne connection für mich, die grad unbenutzt ist?
Ja: Hallo PHP, hier hast du die Verbindungs-ID
Nein: Hallo PHP, ich habe dir eine neue Verbindung aufgemacht, hier ist die ID.
Am Ende jedes Scripts passiert Folgendes:
- Hallo Mysql, ich brauche die Verbindung (ID) jetzt nicht mehr, du kannst sie wieder für andere Anfragen bereithalten.
PROBLEM: Sollte aufgrund von Fehlern, Endlosschleifen etc. die benutzten Verbindungen von den Scripten gar nicht mehr freigegeben werden, muss der Mysql Server für jede neue Anfrage nach einer Verbinmdung immer eine neue erstellen. Und das so lang bis max_connections erreicht ist und keine weiteren Verbindungsanfragen mehr angenommen werden, oder bis der Server abkackt
Ergänzungen: Wenn zu einem best. Moment z.b. 25 gleichzeitige Verbindungsanfragen kommen, wird der Mysql Server auch 25 Verbindungen vorhalten (in wie fern die bei weniger Last nach und anch geschlossen werden, weiss ich gerade aus dem Kopf nicht)
=> max_connections sollte immer größer sein als die Anzahl der maximal gleichzeitig angefragten Connections + ein Puffer für LAstspitzen
=> Der Server sollte auch wirklich (max_connections) Verbindungen verkraften (RAM etc...)
Ich hoffe das war einigermassen anschaulich erklärt
Mehr Infos:
http://de2.php.net/manual/de/features.persistent-connections.php
|
|
|
|
|
force23
Dabei seit: 21.04.2009
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 21.04.2009 10:37
Titel
|
|
|
wie sieht es denn mit der sicherheit solcher verbindungen bezüglich injections aus?
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
[php / mysql] Mysql Daten in php als Link ausgeben
(php-mysql) übergabe von formulardaten und abfrage m. mysql
BLOB in mysql per php oder mysql einfügen
|
|