beetFreeQ Geschrieben 1. März 2002 Geschrieben 1. März 2002 Moin! Was haltet Ihr von der Verwendung von Sessions unter PHP? Bisher hab ich eigentlich überall Sessions verwendet, denn die Dinger sind sicher und sehr komfortabel, wenn's um das seitenübergreifende Speichern von Daten geht. Allerdings hab ich jetzt (zum ersten Mal überhaupt) von einem Nachteil gehört: Sessions sind ziemlich ressourcenhungrig... Letztendlich soll eine einfache Session mehr Ressourcen fressen, als ein Datensatz in einer MySQL-Tabelle, der halt als Session-Esatz fungieren würde. Bei vielen Usern auf der Site gleichzeitig ist sowas ja nicht unwichtig... Der Aufwand, soetwas per Tabelle und selbstgenerierter ID, die immer weitergegeben werden muß, zu realisieren ist natürlich höher, aber es hat auch Vorteile. Zum einen kann man diese Tabelle dann ja auch für Statistiken auswerten, zum anderen muß man sie nicht zwingend vor Senden des Headers benutzen und hat somit einige Freiheiten mehr... Was meint ihr dazu? Benutzt Ihr Sessions oder wie realisiert ihr User-Tracking u.ä.? Wer Links mit Infos zum Thema hat - immer her damit! thx! Zitieren
DanielH Geschrieben 1. März 2002 Geschrieben 1. März 2002 Hi, sessions sind pro Datei ca. 8 Kb groß wenn nur ein Zeichen drin steht. Wenn man da von nem Forum wie diesem hier ausgehen würde, wären das in diesem Moment 86 solche kleinen Dateien plus zusätzliche durch den gc noch nicht gelöschte. Da hat nen Lesekopf ganz schön zu tun.... Usertracking durch Cookies find ich eigentlich am schönsten, Schade das Cookies so einen schlechten Ruf haben. Usertracking mittels Datenbank hab ich letztens probiert, relativ unkomfortabel und unterm Strich leidet da die Performance ab einer gewissen Userzahl genauso, nicht zu vergessen das die Anzahl der Connects bei z.B. MySQL enorm schnell nach oben geht. Aber ist ein interessantes Thema... MfG Zitieren
beetFreeQ Geschrieben 1. März 2002 Autor Geschrieben 1. März 2002 Original geschrieben von DanielH Hi, sessions sind pro Datei ca. 8 Kb groß wenn nur ein Zeichen drin steht. Wenn man da von nem Forum wie diesem hier ausgehen würde, wären das in diesem Moment 86 solche kleinen Dateien plus zusätzliche durch den gc noch nicht gelöschte. Da hat nen Lesekopf ganz schön zu tun.... Usertracking durch Cookies find ich eigentlich am schönsten, Schade das Cookies so einen schlechten Ruf haben. Usertracking mittels Datenbank hab ich letztens probiert, relativ unkomfortabel und unterm Strich leidet da die Performance ab einer gewissen Userzahl genauso, nicht zu vergessen das die Anzahl der Connects bei z.B. MySQL enorm schnell nach oben geht. Aber ist ein interessantes Thema... MfG 8kb? :eek: :eek: - schreibst Du da ganze Romane rein? ... Also meine Sessions sind meist so um die 200 Byte groß - da landen bei mir nämlich einmal alle Daten aus der Member-Tabelle, die zwischendurch immer wieder gebraucht werden (ID, Name, Loginzeitpunkt u.ä.) sowie die URL und die Variablen der aktuell angezeigten Seite (für Redirects etc.)... Letztendlich kommt's AFAIK aber ja nicht auf den Speicherverbrauch an, sondern darauf, wie der Webserver die Sessions behandelt. Bei vielen Usern sind ja auch ständige Zugriffe auf die Sessions notwendig... - bei Datenbanken isses IMO ja aber auch nicht anders sondern eigentlich eher noch aufwendiger, da jedesmal ein Connect, Auslesen etc. erfolgen muß... Allerdings sind Datenbank-Tabellen ja eigentlich schneller als einfache Textdateien, allein der Struktur wegen, da man in den Textdateien erst die gesamte Datei nach dem gesuchten Wert durchforsten muß... - aber bei der geringen Größe macht das doch eigentlich keinen Unterschied, oder? Hab eben auch nochmal verschiedene Tutorials für Sessions bzw. User-Tracking durchgesehen und überall wurden Sessions als die beste Lösung angesehen... - von Nachteilen wie Ressourcenhunger wurde nirgends etwas erwähnt... Zitieren
DanielH Geschrieben 1. März 2002 Geschrieben 1. März 2002 Die Dateigrösse scheint wohl am FS zu liegen... Ich meine aber auch, das Sessions (oder Cookies) die bessere Lösung sind. Mit Datenbanken ist es vermutlich nur dann schneller, wenn man dem user einen dauerhaften Connect gibt. Wo lag da doch gleich nochmal die maximale Anzahl bei MySQL ? Zitieren
Impulz Geschrieben 3. März 2002 Geschrieben 3. März 2002 Das existierende Session-Management is schon eine feine Sache. Standardmaessig werden Textdateien (die auch nur die groesse der gespeicherten Werte plus Trennzeichen haben) dafuer benutzt. Allerdings kann man die Save-Routinen selber schreiben, siehe hierzu http://www.php.net/manual/de/function.session-set-save-handler.php So ist es ohne weiteres moeglich eine mysql-Datenbank zu nutzen und man brauch nit die komplette Session-Verwaltung neu schreiben. Ob sich das lohnt die Daten in mysql abzulegen haengt wohl von dem System ab. Wenn eh schon viele Festplattenzugriffe erfolgen, mag es sinnvoller sein, einen externen datenbank server zu nutzen, aber wo is das schon der fall. Impulz Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.