phpbar.de logo

Mailinglisten-Archive

[php] session_set_save_handler() + SQL MEMORY-Tabelle vs. mount tmpfs + session_save_path()

[php] session_set_save_handler() + SQL MEMORY-Tabelle vs. mount tmpfs + session_save_path()

Thomas Koudela thomas at koudela.net
Fre Jan 9 12:47:45 CET 2009


Hallo,

ich arbeite gerade an einer Autorisierungsklasse und überlege wie
Sessions optimal (bzgl. der Performance) eingebunden werden können. Die
klassische Speicherung der serialisierten Session auf der Festplatte
erscheint mir dabei suboptimal.

Die einfachste Methode (root-Rechte vorausgesetzt) der
Performancesteigerung wäre eine Bereich des Arbeitsspeichers dynamisch
per "mount -t tmpfs namedesmediums /pfad/zum/einhängepunkt"
bereitstellen zu lassen, mit "mount namedesmediums" einzuhängen und
mittels "session_save_path('/pfad/zum/einhängepunkt');" dem Skript
mitzuteilen wo es seine serialisierten Sessions speichern/lesen soll.

Die zweite Methode setzt mehr Programmierarbeit voraus, kommt dafür ohne
root-Rechte bzw. Rootserver aus. Die serialisierte Session z.B. in einer
MySQL-Tabelle vom Typ MEMORY ablegen und die Sessionroutinen mittels
"session_set_save_handler([...]);" entsprechend umbiegen.

Hat jemand Erfahrung mit einer oder gar beiden Methoden?

(Anm.: Bei der zweiten Methode verwirrt mich einer der Kommentare zur
entsprechenden Funktion.
[http://de2.php.net/manual/de/function.session-set-save-handler.php]
patrick at eternalspace dot com schrieb am 13-Dec-2008: [...] When a
custom write() method gets the $session_hash and the $data of the
session, the $data has binary data in it!  Therefore, stripslashes() or
mysql_real_escape_string() will NOT properly prepare a collapsed
$_SESSION string for database storage! [...]
Ist das nicht egal ob binäre Daten escaped werden? Wichtig ist meiner
Einschätzung eher, dass das Speicherfeld binäre Daten aufnehmen kann.
mysql_real_escape_string() hat doch "nur" die Aufgabe, dass die Eingabe
nicht die Syntax verfälschen kann?)



php::bar PHP Wiki   -   Listenarchive