• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL & FileStreams

Wikinger75

Neues Mitglied
Hey Leute.
Hab mal ne frage!
Was lohnt sich was?
Prinzipiel lassen sich mit MySQL und den PHP-FileStreams das gleiche machen, doch wan lohnt sich was oder wan sollte man was benutzen?
Mfg Wikinger75!
 
MySQL ist eine Datenbank.
Das andere erzeugt Dateien im Filesystem.

Das sind zwei völlig verschiedene Dinge.

Erzeugst Du Textdateien, kannst Du die auch problemlos im Filesystem lesen oder transferieren.
Eine Datenbank bietet Dir zahlreiche Funktionen, um auf die Daten zuzugreifen: Suchen, sortieren, usw. Solche Funktionen müsstest Du für eine dateiübergreifende Suche oft erst selber schreiben.
Datenbanken kümmern sich selbst um das Locking, wenn mehrere Prozesse in die selbe Tabelle schreiben wollen. Bei Dateien musst Du das Locking selber machen, weil es sonst sein kann, dass zwei Prozesse gleichzeitig in die Datei schreiben und somit die Änderungen des einen Prozess verloren gehen können.
Außerdem ist es sicher auch ein Geschwindigkeitsaspekt. Für Millionen von Daten sollte man nicht Dateien schreiben, wobei man zum Schreiben irendwelcher Konfigurationsdaten nicht gleich eine Datenbank braucht.
 
was das locking angeht kommen mit files mehrere probleme auf dich zu. zum einen musst du selbst dafür sorge tragen, dass beim beschreiben von dateien die reihenfolge eingehalten wird. lockst du ein file zu früh, kann es sein, dass ein benutzer warten muss, bis es wieder frei gegeben wird.
manche server locken garnicht oder mangelhaft. ein lock auf einem windows-server wird möglicher weise nicht funktionieren.
der webserver startet bei vielen gleichzeitigen zugriffen auf ein file neue instanzen. leider weiss eine instanz von der anderen nichts und bei einem gelockten file, könnte es passieren, dass die zweite instanz ein leeres file zurück liefert. damit kann man daten verlieren.

eine suche in files kann (wenn sie z.b. mehrere dateien übergreifend ist) sehr lange daueren und php bricht dann wegen eines zeitüberlaufs die suche mit einem fehler ab. das muss man entweder programm-technisch abfangen oder auf viele dateien aufteilen.

liegen daten in einem einzigen file, ist ein file wesentlich schneller als die datenbank (die ja eigentlich auch nichts anderes als ein file ist). mein selbst gebasteltes cms läuft sowohl mit files als auch mit sql. file-based ist es gut 3 mal so schnell (die suche ist wieder eine ausnahme, da sind beide ca gleich schnell).

prinzipiell kannst du mit files nahezu alles machen. ich habe gut 4 jahre ein forum betrieben, dass komplett auf files basierte und 0 sql-statements hatte und sich hinter einem sql-board nicht verstecken muss. das grösste board hatte übrigens über 1 million posts.
einzig die suche hätte ich gerne wie in einer datenbank gehabt.:-P

ich persönlich stehe auf files, da man sie in jedem editor bearbeiten und mit jedem ftp-script sichern kann. wann immer ich files verwenden kann, tue ich das auch. sql kommt nur bei sehr grossen datenmengen zum zug und wenn eine schnelle sortierung oder suche sein muss.
 
Zurück
Oben