Hallo,
Ein RDBMS haelt Daten strukturiert im RAM
Ja, aber mit einer fast fest vorgegebenen Struktur die evt. nicht dem Einsatzzweck optimal angepasst ist.
Und das ist in diesem Fall durchaus wichtig, um Lesezugriffe zu
optimieren. Wenn wirklich bei jedem Aufruf der Forenhauptseite die
ganze Datenbank nach allen relevanten Informationen durchsucht werden
müßte, würde ein Besucher ganz locker eine Sekunde der Gesamtprozessorzeit
für sich beanspruchen. (Und das ist jetzt sehr optimistisch geschätzt. :-))
ein Flatfile-System (eher) nicht.
Es geht auch nicht um ein Flatfile-System, sondern um strukturierte Daten im RAM. Ob man die dann zu Langzeitspeicherzwecken in eine Datei serialisiert oder woanders hin ist weitestgehend egal.
Nicht zwingend. Eine Datei ist immer als ganzes zu betrachten. Wenn
du eine Datei ändern möchtest, wirst du diese üblicherweise
vollständig neu beschreiben.
Was bedeutet das?
- Zuerst wird die alte Datei durch Löschen einer Referenz in der
Dateizuordnungstabelle (oder wie auch immer) entfernt. - Dann wird ein neues, flauschiges Plätzchen für die neue Datei
gesucht. ;) - Die Datei wird in der Dateizuordnungstabelle angelegt.
- Zum Schluß werden die Daten _vollständig_ in die Datei geschrieben.
(Von Fragmentierung und ähnlichen Problemen möchte ich gar nicht erst
anfangen.)
Was passiert beim Ändern eines Datensatzes in der Datenbank?
Nun, abhängig von der Struktur werden ein odere mehrere Bits auf
der Festplatte neu geschrieben. Mehr nicht.
(Nachteil: Eine Datenbank braucht mehr Speicher auf der Festplatte.)
Den Rest habe ich mal gesnippt. Über den Geschwindigkeitsvorteil
der gewünschten Struktur direkt im RAM gegenüber dem Zugriff auf ein
RDBMS brauchen wir wohl kaum reden. :-)
Gruß
Slyh