Sprache aus Datei oder Datenbank?

Kategorien: PHP & MySQL
5 Antworten
crassity
crassity am Montag, 25. Juli 2005 um 10:13
Guten Morgen liebe Webstyler :D Ich steh grad ein wenig auf dem Schlauf. Mittlerweile werden statische Textbausteine ja kaum noch im Template (oder quelltext, wie auch immer) verfasst, sondern aus einer Datei oder Datenbank als Variable (z.B. $lang[time_for_breakfast] =>Ich sollte mal frühstücken gehen), eingebunden. Jetzt stellt sich mir aber die Frage, welche von den beiden Varianten performanter ist, dass auslesen aus einer Datei oder die Abfrage aus einer Datenbank? Wenn man sich mal in einigen OpenSource anwendungen umschaut, findet man beide Varianten ziemlich gleichoft vertreten. Rein vom Gefühl her möchte ich jetzt mal behaupten, dass das abfragen aus der Datenbank einfacher zu handlen ist. Ausserdem sind die möglichkeiten, die Sprache zu bearbeiten , über eine Datenbank einfacher zu realisieren. Nachteil ist dabei natürlich, dass viele Datenbankverbindungen entstehen, was für viel traffic und evtl. zur verlangsamung der anwendung führen könnte. Was meint ihr denn, was performanter, bzw. benutzerfreundlicher wäre? Schöne Grüße aus Essen Micha

Kommentare

FrAgDeViL
FrAgDeViL am Montag, 25. Juli 2005 um 10:31

also ich finde datenbanken besser. mit dateien komm ich persönlich überhaupt nicht klar.

jeder hat eine andere einstellungen und ich denke ma, das sich die varianten nicht viel nehmen.

von der sicherheit weiß ich nicht genau, ob datenbanken sicherer sind...

phadiax
phadiax am Montag, 25. Juli 2005 um 10:49

In meinem aktuellen Projekt hat sich die Frage für mich auch gestellt. Letztendlich setze ich Textdateien ein, die statische Texte beinhalten, einfach um die DB zu schonen und möglichst wenig Queries pro Seite zu haben. Im Allgemeinen würde ich aber eine Datenbankvariante wählen, wenn es sich mit den Besucherzahlen vereinbaren lässt, da es wesentlich praktischer zu Administrieren ist (finde ich jedenfalls).
Performancetechnisch nehmen sich die beiden Varianten nicht viel, wenn man von einem Besucher ausgeht.

Markus René Einicher
Markus René Einicher am Montag, 25. Juli 2005 um 15:09

Mit einer Datenbank kannst du bequemer und mit mehr Möglichkeiten auf die Daten zugreifen. Du kannst sie begrenzt auslesen, sortiert, und du kannst sogar Abfragen verbinden (joinen). Das frisst aber jede Menge RAM, und der Index den die Datenbank zwecks schnellem und koplexen Zugriff auf die Daten erstellen muss, belastet die Festplatte noch zusätzlich. Wenn du daher enorm viele DAten hast aber wenig aufwendig darauf zugreifen musst, rate ich dir uz Textdateien.

Auch sind Textdateien für kleinere Eingriffe praktisch, wo es Verschwendung wäre dafür eine eigenen tabelle anzulegen.

Wenn du Probleme mit dem Handhaben von Textdateien hast, kannst du gerne meine Sompra haben, das ist eine von mir für Cepra entwickelte Sammlung von Funktionen die Daten mit dem Aufruf einer Funktion ausließt, entfernt und reinschreibt, bzw dir den Inhalt einer Datei als Array ausliefert und dabei einen übersichtlichen Standard verwendet die Dateien in einem Satz abzulegen:

#?BLOCK
datensatz:datenwert+
#!BLOCK

blackfeet
blackfeet am Montag, 25. Juli 2005 um 21:09

Bei vielen Ausgaben, villeicht auch noch multilangual, wird die Textdatei sicher etwas ungemütlich und unperformant. Ich würde es über eine
Datenbank machen.

Markus René Einicher
Markus René Einicher am Dienstag, 26. Juli 2005 um 11:19

Wenn sich jeder Benutzer selbst die Sprache einstellen kann, tust es am Besten in die Benutzer-Datenbank dazu.

Hab den konkreten Teil irgendwie überlesen und nur noch die Frage .txt oder DB gesehen^^

Hab jetzt mal eine BenutzerSystem mit Dateien und Datenbank getestet und muss sagen, dass die Datenbank um ein tausendfaches besser abgeschnitten hat. Allein um die 1000 Benutzer einzutragen hat die Datenbank den Bruchteil einer Sekunde und 566KB gebraucht, während das Dateisystem mit den erstellen von 1000 Dateien 8 Minuten gebraucht hat und damit 721 KB belegt. Für das eintragen der 1000 Benutzer in eine einzige Datei, brauchte es genausviel Speicherplatz, aber auch nur den Bruchteil einer Sekunde.

Mit meiner Sompra die Daten in eine Datei zu schreiben hat genausolange gebraucht wie das erstellen von 1000 seperaten Dateien, die werd ich jetzt wohl umschreiben

mfg