André Laugks: + Meinung: eine Session anstatt vieler Datenbankanfragen

Hallo!

Gegeben ist ein Katalog mit vielen Personen. Zu jeder Person gibt es Daten und viele Fotos. Wenn man sich durch die Bilder zapt kommt es zu sehr vielen Datenbankanfragen. Die Datenbank liegt auch nicht auf der selben Maschine, eventuell bremst das Netzwerk.

Wenn ich nun eine Person auswähle habe ich mir gedacht, alle Daten in eine Session(PHP) zu packen und mich aus der Sessiondatei zu bedienen, anstatt vieler Datenbankanfragen. Die Daten packe ich in die Session-Datei, sobalt man sich eine Person ansehen möchte.

Meine Frage ist, ob das verwenden einer Session ein Geschwindigkeitsvortiel ist oder ob ich ruhig immer auf die Datenbank zugreife.

MfG, andré Laugks

  1. Hi,

    Meine Frage ist, ob das verwenden einer Session ein Geschwindigkeitsvortiel ist oder ob ich ruhig immer auf die Datenbank zugreife.

    Du ersetzt damit Geschwindigkeit durch Datenmasse. Bei Zugriffen durch mehrere Sessions summiert sich dies - und jeder Vorteil ist für die Katz. Wenn ich mich nicht irre, werden die Session-Daten übrigens ebenfalls in der DB gespeichert, was Dein Vorhaben ohnehin ad absurdum führt.

    Vertraue dem Cache, Luke. Wenn mehrmals die gleiche Anfrage kommt, wird spätestens die DB das bemerken.

    Cheatah

    1. Hallo!

      Du ersetzt damit Geschwindigkeit durch Datenmasse. Bei Zugriffen durch mehrere Sessions summiert sich dies - und jeder Vorteil ist für die Katz.

      Es ist eine "Session-Datei". Sobald ein andere Person aufgerufen wird, nehme ich die selbe Datei/Session, lösche aber den Inhalt der Variablen. Die Seite wird aber auch nie einen hohen Zugriff haben, da es eine Art B2B-Seite ist. Dort verirren sich nur wnige Fotografen hin.

      Wenn ich mich nicht irre, werden die Session-Daten übrigens ebenfalls in der DB gespeichert, was Dein Vorhaben ohnehin ad absurdum führt.

      Mit PHP hast Du drei Möglichkeiten. Standard ist eine Datei im /tmp Verzeichnis. IMHO sind die anderen beiden Möglichkeiten im Speicher und mit einer Funktion (http://www.php.net/manual/de/function.session-set-save-handler.php) kannst Du den Ort(.B. Datenbank) selbst bestimmen.

      Vertraue dem Cache, Luke. Wenn mehrmals die gleiche Anfrage kommt, wird spätestens die DB das bemerken.

      mySQL macht dies? Das Problem ist, es ist nie die selbe Anfrage. Zar die selbe Tabelle, aber immer ein anderer Datensatz oder Spalte.

      MfG, André Laugks

      1. Hi,

        warum haben Deine Postings eigentlich so wahnsinnig viele Leerzeilen?

        Es ist eine "Session-Datei".

        Ah ja. Welcher Größe?

        Dort verirren sich nur wnige Fotografen hin.

        Mit Pech aber gleichzeitig.

        Mit PHP hast Du drei Möglichkeiten. [...]

        Danke für die Info!

        Vertraue dem Cache, Luke. Wenn mehrmals die gleiche Anfrage kommt, wird spätestens die DB das bemerken.

        mySQL macht dies?

        Soweit ich weiß, ja. Wenn nicht MySQL, dann u.U. aber auch das Betriebssystem - selbst ein DBMS greift auf Dateien zu.

        Das Problem ist, es ist nie die selbe Anfrage. Zar die selbe Tabelle, aber immer ein anderer Datensatz oder Spalte.

        Du meinst, das Ergebnis ist immer ein anderes? Wieso willst Du für individuelle Daten einen Cache implementieren? Irgendwas verstehe ich glaube ich nicht :-)

        Cheatah

        1. Hallo!

          warum haben Deine Postings eigentlich so wahnsinnig viele Leerzeilen?

          Ein Bug unter Opera 5.0 (Linux). Opera unter Linux hat Probleme mit POST. Variablen/Werte werden teilweise nicht übertragen. Einfach zurück und dann noch einmal und schon geht es. Bei diesem "Zurück" haut er wohl diese Leerzeichen rein, aber auch nicht immer. Ich warte schon Sehnsüchtig auf Version 5.1. Diesen Bug haben mir schon andere Opera-Linux-User berichtet. abe ich schon bei anderen hier im Forum gesehen.

          Ah ja. Welcher Größe?

          Kann wohl bis zu 5 KB aufnehmen.

          http://www.koehntopp.de/php/faq-version4_session.html#version4_session-8

          Mit PHP hast Du drei Möglichkeiten. [...]

          Danke für die Info!

          Das mit dem Speicher habe ich auch nur einmal aufgeschnappt. Ich habe da so mein Theorie, aber damit würde ich dir nichts genaues sagen. Ich habe bis jetzt noch keine eindeutigen Hinweise gefunden.

          Du meinst, das Ergebnis ist immer ein anderes? Wieso willst Du für individuelle Daten einen Cache implementieren? Irgendwas verstehe ich glaube ich nicht :-)

          Das habe ich mich gestern auch gefragt und die Idee mit der Session sein lassen...

          MfG, André Laugks