Session oder MySQL
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
anfrage
arbeitsspeicher
datei
datenbank
datum
einfache datenbank
gesagt daten
geschwindigkeit
gleichem stand
halten
laden
login
regel
ressource
sagen
session
speichern
verwendung
-
Ich stehe zur Zeit vor einem kleinen Problem im Bezug auf Sessions und MySQL.
Ich habe eine MySQL-Datenbank mit einer Tabelle "prs" mit verschiedenen User-Infos. Darunter zum Beispiel id, name, password und einiges an anderen Werten.
Ich frage mich nun, ob es besser ist die Daten nach dem Login in eine Session zu schreiben und aus da auszulesen oder jedesmal auf die MySQL-Datenbank zuzugreifen.
Is villeicht ne etwas blöde Frage, aber ich hab beim guten alten Google keine statistischen Daten oä. zu diesem Thema gefunden. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich würde sagen, aus einer Datenbank zu laden ist funktionell besser geeignet, da sich die Nutzerdaten stetig ändern können. Somit muss man nicht stetig aus der DB in die Sessions laden was der Fall unter Verwendung von Sessions und dem Ändern der Nutzerdaten wäre.
-
Da eine Session ja Zeitlich begrenzt ist, würde ich die Daten beim Login in eine Session speichern. Das beschleunigt evtl. minimal den Seitenaufbau. Zudem entlastet das den Mysql-Server.
truewebs Argumente treffen aber auch zu.
Grüße,
Prog -
prog schrieb:
Da eine Session ja Zeitlich begrenzt ist, würde ich die Daten beim Login in eine Session speichern. Das beschleunigt evtl. minimal den Seitenaufbau. Zudem entlastet das den Mysql-Server.
Datenbanken sind auch garnicht dafür gedacht, mit (ner großen Masse an) Daten zu arbeiten ;) -
wirklich, von 100 eingeloggten Usern jedesmal die Daten aus der Datenbank zu holen ist sicher KEINE überforderung (wie trueweb voller Ironie schon angedeuted hat)
Zu denken Datenbanken seien mit so etwas überfordert ist, als würde man einem 200PS Auto nicht zutrauen schneller als 100 km/h zu fahren -
trueweb schrieb: Ich würde sagen, aus einer Datenbank zu laden ist funktionell besser geeignet, da sich die Nutzerdaten stetig ändern können. Somit muss man nicht stetig aus der DB in die Sessions laden was der Fall unter Verwendung von Sessions und dem Ändern der Nutzerdaten wäre.
Naja, aber warum sollte es problematisch sein, die Daten sowohl in der Session als auch in der Datenbank zu ändern? Alle Daten neuladen muss man dazu nicht. Alle Änderungen an diesen Daten können werden nur über diese Klasse durchgeführt, somit sollte es nicht allzu schwer sein die Daten in der Datenbank und in der Session auf gleichem stand zu halten.
Mich interessiert eigentlich nur die Geschwindigkeit:
Ist eine Session schneller als eine Datenbank?
Oder bis wann ist sie schneller? -
nikic schrieb:
trueweb schrieb: Ich würde sagen, aus einer Datenbank zu laden ist funktionell besser geeignet, da sich die Nutzerdaten stetig ändern können. Somit muss man nicht stetig aus der DB in die Sessions laden was der Fall unter Verwendung von Sessions und dem Ändern der Nutzerdaten wäre.
Naja, aber warum sollte es problematisch sein, die Daten sowohl in der Session als auch in der Datenbank zu ändern? Alle Daten neuladen muss man dazu nicht. Alle Änderungen an diesen Daten können werden nur über diese Klasse durchgeführt, somit sollte es nicht allzu schwer sein die Daten in der Datenbank und in der Session auf gleichem stand zu halten.
Mich interessiert eigentlich nur die Geschwindigkeit:
Ist eine Session schneller als eine Datenbank?
Oder bis wann ist sie schneller?
Eine Session Anfrage dürfte in der Regel schneller sein.
Verbraucht aber unter umständen mehr Arbeitzspeicher.
Sessions werden in einer "Datei" gespeichert.
Und diese Datei wird in den Arbeitsspeicher geladen.
In dieser Datei sind alle Session-Daten.
Darum sollten in Session nur wenige Daten bzw. Daten die man auf jeder Seite braucht gespeichert werden.
Bei einer Datenbank werden die Daten durch eine Suchanfrage zusammengestellt.
Und je nach dem wie aufwändig die Anfrage ist....
Somit ist Session immer schneller. Da die Daten immer in Speicher geladen werden (bei jeden Seitenaufruf werden die Daten in den Speicher geladen).
Somit muss man zwischen Geschwindigkeit und Arbeitsspeicher abwägen.
Wie gesagt: Daten die man fast bei jeden Seitenaufruf abfragen würde, kann man besser als Session speichern.
In übrigen werden die Session auch manchmal in einer Datenbankgespeichert.
Allerdings ist es einen einfache Datenbank-Abfrage. -
jacr schrieb:
nikic schrieb:
trueweb schrieb: Ich würde sagen, aus einer Datenbank zu laden ist funktionell besser geeignet, da sich die Nutzerdaten stetig ändern können. Somit muss man nicht stetig aus der DB in die Sessions laden was der Fall unter Verwendung von Sessions und dem Ändern der Nutzerdaten wäre.
Naja, aber warum sollte es problematisch sein, die Daten sowohl in der Session als auch in der Datenbank zu ändern? Alle Daten neuladen muss man dazu nicht. Alle Änderungen an diesen Daten können werden nur über diese Klasse durchgeführt, somit sollte es nicht allzu schwer sein die Daten in der Datenbank und in der Session auf gleichem stand zu halten.
Mich interessiert eigentlich nur die Geschwindigkeit:
Ist eine Session schneller als eine Datenbank?
Oder bis wann ist sie schneller?
Eine Session Anfrage dürfte in der Regel schneller sein.
Verbraucht aber unter umständen mehr Arbeitzspeicher.
Sessions werden in einer "Datei" gespeichert.
Und diese Datei wird in den Arbeitsspeicher geladen.
In dieser Datei sind alle Session-Daten.
Darum sollten in Session nur wenige Daten bzw. Daten die man auf jeder Seite braucht gespeichert werden.
Nicht unbedingt, wenn du meinst, dass alle Sessiondaten von allen Sessions in EINER datei drinnen sind, liegst du falsch.
Aber auch sonst dürfte eine MySQL-Abfrage mehr Ressourcen verbrauchen als eine Session-Abfrage. Es kommt halt immer auf die Statements und die anzahl der abgespeicherten Sessiondaten an.
Datenbanken werden ja auch "nur" in Dateien abgespeichert :D
Zu den Ressourcen: Aber es gibt ja nicht nur NikiC, der auf die Datenbank zugreift.
Voralem bei so vielen Verschiedenen Usern sollte es wichtig sein, auf Ressourcenschonende weise zu programmieren.
Bei einer Datenbank werden die Daten durch eine Suchanfrage zusammengestellt.
Und je nach dem wie aufwändig die Anfrage ist....
Somit ist Session immer schneller. Da die Daten immer in Speicher geladen werden (bei jeden Seitenaufruf werden die Daten in den Speicher geladen).
Somit muss man zwischen Geschwindigkeit und Arbeitsspeicher abwägen.
Wie gesagt: Daten die man fast bei jeden Seitenaufruf abfragen würde, kann man besser als Session speichern.
In übrigen werden die Session auch manchmal in einer Datenbankgespeichert.
Allerdings ist es einen einfache Datenbank-Abfrage.
[/quote] -
mergener schrieb:
jacr schrieb:
nikic schrieb:
trueweb schrieb: Ich würde sagen, aus einer Datenbank zu laden ist funktionell besser geeignet, da sich die Nutzerdaten stetig ändern können. Somit muss man nicht stetig aus der DB in die Sessions laden was der Fall unter Verwendung von Sessions und dem Ändern der Nutzerdaten wäre.
Naja, aber warum sollte es problematisch sein, die Daten sowohl in der Session als auch in der Datenbank zu ändern? Alle Daten neuladen muss man dazu nicht. Alle Änderungen an diesen Daten können werden nur über diese Klasse durchgeführt, somit sollte es nicht allzu schwer sein die Daten in der Datenbank und in der Session auf gleichem stand zu halten.
Mich interessiert eigentlich nur die Geschwindigkeit:
Ist eine Session schneller als eine Datenbank?
Oder bis wann ist sie schneller?
Eine Session Anfrage dürfte in der Regel schneller sein.
Verbraucht aber unter umständen mehr Arbeitzspeicher.
Sessions werden in einer "Datei" gespeichert.
Und diese Datei wird in den Arbeitsspeicher geladen.
In dieser Datei sind alle Session-Daten.
Darum sollten in Session nur wenige Daten bzw. Daten die man auf jeder Seite braucht gespeichert werden.
Nicht unbedingt, wenn du meinst, dass alle Sessiondaten von allen Sessions in EINER datei drinnen sind, liegst du falsch.
Nein, das habe ich nicht gemeint.
Jedes Sessions hat natürlich seine eigene Datei.
Aber das meinte ich als ich sagte, das sie in einer Datei gespeichert werden.
Aber auch sonst dürfte eine MySQL-Abfrage mehr Ressourcen verbrauchen als eine Session-Abfrage. Es kommt halt immer auf die Statements und die anzahl der abgespeicherten Sessiondaten an.
Datenbanken werden ja auch "nur" in Dateien abgespeichert :D
Ja, sie werden in Dateien gespeichert.
Allerdings oft in unterschiedlichen Dateien.
D.h. es kann sein, dass die Datenn aus der Anfrage aus verschiedene Dateien kommen.
Es kann aber auch sein, dass die Daten bei einer Anfrage aus den Cache kommen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage