php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Performance: Session und/oder Datenbank?


 
Zerofab
02-05-2006, 13:43 
 
Hi

Ich habe eine kleine Frage bezüglich der Geschwindigkeit. Es handelt sich um ein Wörterabfrageprogramm.

Was ist schneller:

1. Wenn man die Daten der DB in eine Session lädt und dann dort alles aktualisiert und am Schluss daraus die Datenbank aktualisiert.

oder

2. Wenn man die Daten gleich per UPDATE oder INSERT INTO ändert, jedesmal, wenn man ein Wort falsch geschrieben hat.

Danke schon im Vorraus. :)

Mfg Fab

 
TobiaZ
02-05-2006, 13:50 
 
definiere mal "Daten"

 
Zerofab
02-05-2006, 17:49 
 
Hi

Mit Daten sind die Wörter gemeint. Also z.B das deutsche Wort und seine Übersetzung, das Englische. Mengenmässig können das Viele, aber auch wenige sein, da kommt ganz auf die Person an, welche das Programm benutzt.

Es geht darum die inkorrekten Wörter zu speichern, damit man nur diese wieder abfragen kann.

Mfg Fab

 
Lettort
04-05-2006, 11:38 
 
Ich würde die Daten erstmal in der Session sammeln.

Datenbankzugriffe dauern immer sein Weilchen, etwas im Speicher abzulegen dagen ist schnell. Und einmal dann die Daten wegzuschreiben, tut keinem Weh.

Wenn nur eine Person, oder recht wenige, das Programm benutzen, dann sollte es nicht ausschlaggebend sein welche Methode du benutzt.
Bei vielen gleichen, evtl. konkurierenden DB Zugriffen hingegen, macht das schon Performaceverlust aus. Da wirklich lieber erstmal in Session sammeln, und dann alles auf einmal, sauber wegschreiben.

 
Zerofab
04-05-2006, 13:40 
 
Hi

Danke für deine Antwort.

Das Programm sollte so ausgelegt werden, dass später auch viele Benutzer gleichzeitig, ohne viel Performanceverluste, damit arbeiten können.

Ich habe nun die Methode mit der Session genommen. Deine Argumente sind ziemlich einleuchtend :)

Danke nochmals!

Mfg Fab

 
uschi
04-05-2006, 14:06 
 
Ich weiss nicht, ob das mit der Session so eine gute Idee ist.
Ich kann dir eigtl. nur empfehlen, dich an die Techniker von dict.leo.org zu wenden. Die sind eigentlich ganz freundlich. Die arbeiten zwar nicht mit php, aber zwecks Perfance können sie dir sicherlich konkret Feedback geben! Viel Glück.

 
Quetschi
04-05-2006, 15:59 
 
Original geschrieben von Lettort
Ich würde die Daten erstmal in der Session sammeln.

Datenbankzugriffe dauern immer sein Weilchen, etwas im Speicher abzulegen dagen ist schnell. Und einmal dann die Daten wegzuschreiben, tut keinem Weh.

Wenn nur eine Person, oder recht wenige, das Programm benutzen, dann sollte es nicht ausschlaggebend sein welche Methode du benutzt.
Bei vielen gleichen, evtl. konkurierenden DB Zugriffen hingegen, macht das schon Performaceverlust aus. Da wirklich lieber erstmal in Session sammeln, und dann alles auf einmal, sauber wegschreiben. Ich glaub das kann man so auch nicht unbedingt stehenlassen - kommt schließlich drauf an was in PHP eingestellt ist wie die SessionsDaten gehandlet werden sollen:
- als Datei
- in ner DB
- im Ram (hat ich mal getestet, geht echt sehr schnell, nur leider ging der Server regelmässig nach ca. 6 Std. in die Knie, irgendwas hat ich da wohl ned richtig konfiguriert)

nen echten Performancevorteil dürfte höchstens bei der letzten Option geben, die beiden anderen Varianten dürften sich in Sachen Performance nur geringfügig von einer eigenen DB-Lösung unterscheiden - ob positiv oder negativ kann ich allerdings auch ned sagen.

 
Zerofab
04-05-2006, 18:47 
 
Hi

@uschi

Ok, danke sehr für den guten Tipp. :)

@quetschi

Das mit den verschiedenen Möglichkeiten wusste ich gar nicht. Ich muss sagen, dass das Programm mit Sessions bis jetzt relativ schnell läuft. Ich werde dann ob ich will oder nicht sehen, wieviel Benutzer der Server aushält :D

Danke für die Antwort.

Mfg Fab


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:26 Uhr.