phpbar.de logo

Mailinglisten-Archive

[php] session_set_save_handler

[php] session_set_save_handler

Frank Rasche phpml at raschesweb.de
Don Okt 7 17:10:36 CEST 2004


Hallo Andreas,

Andreas Heigl schrieb am Donnerstag, 7. Oktober 2004 um 16:33:

> Aber ich dachte es gäbe doch einen anderen Weg.

out-of-the-box nicht, IMHO.

> Gibt es einen groben Wert, wieviel schneller eine Sessionverwaltung in einer
> Datenbank (MySQL) gegenüber der Standardverwaltung ist?

Hmm, du meinst wohl eher, "wieviel langsamer"? ;)
Wenn du die Session in der DB speicherst und dafür reguläre Tabellen
(kein Heap-Tabellen, aber das wäre bei deinen Grössen wohl nicht
ratsam) nimmst, kommen die genauso auf Platte, wie beim
eingbauten Standard-Files-Handler. Zuzüglich den Overhead den der
SQL-Parser benötigt. In den meisten Fällen ist das langsamer. ;)

Um Sessions zu beschleunigen greift man eher zu shared-memory
(msessions u.ä.) und erspart sich das Speichern auf physikalischen
Medien. Aber auch hier wird deine Anforderung von mehreren MB sicher
schnell die Server-Kapazitäten sprengen, oder?

Am besten misst du einfach mal nach, wie lange das Einlesen eines
Session-Files mit allen serialiasierten Objekten dauert. Dito in einer
DB mit getrennten Blobfeldern für einzelne Objekte (Variablen).

Letzlich hängt ein eventueller Geschwindigkeitsgewinn ja davon ab, wie
selektiv du einzelene Objekte aus der DB für einzelene Seiten zur
Verfügung stellen kannst.

Wenn du z.B. nur 1 Objekt mit 500 kb brauchst und dir dabei bspw. das
Laden von 20 Objekten und Variablen mit insgesamt 5 oder 6 MB sparst, könnte das schon was bringen.


HTH Frank



php::bar PHP Wiki   -   Listenarchive