2 Stimmen

Soll ich Werte in der Datenbank oder in einer XML- oder Textdatei speichern?

Ich habe einige einfache Fragen zur Datenspeicherung auf einer Website, die ich gerade entwickle. Die betreffende Seite wird den Benutzern einen persönlichen Profilbereich ermöglichen, den sie mit Text, Bildern, BB-Code und ähnlichem anpassen können. Diese Profile werden eine Zeichenbegrenzung von etwa 5000 haben. Ich frage mich, wie man diese Daten am besten speichert, da es eine große Menge zu speichern scheint.

Ich dachte daran, vielleicht einfache Textdateien zu verwenden, um die Daten zu speichern und sie mit der Benutzer-ID zu benennen. Was denkt ihr, was am besten für Zugriffs- und Schreibgeschwindigkeit geeignet wäre und würde es von der Datenbank-Lese-/Schreibleistung ablenken, da das Anzeigen und Aktualisieren von Profilen einen großen Teil der Website ausmachen wird.

Danke, Leute. Ich freue mich darauf, eure Meinungen zu hören.

2voto

Daniel Brockman Punkte 17782

Wenn Sie bereits eine Datenbank verwenden, wird es viel einfacher sein, sie dort zu speichern. 5000 Zeichen sind nichts. Die Leistung scheint hier irgendwie irrelevant zu sein.

2voto

Johan Punkte 72893

Ich würde mich dafür entscheiden, sie in der Datenbank zu speichern, denn:

  1. Alle Daten in der Datenbank können Transaktionen verwenden, um alles konsistent zu halten;
  2. Ein einzelner Insert (Transaktion) kümmert sich um alle Ihre Speicherbedürfnisse;
  3. Ein einzelnes Select ruft alle Daten ab;
  4. Sichern Sie die Datenbank und Sie sind fertig;
  5. Wenn Sie auf Langsamkeit stoßen, ist die Einrichtung eines Master-Slave-Schemas oder einer Partitionierung einfach;
  6. Sie können Datenbank-Tools verwenden, um in den Daten zu suchen;

Andererseits, wenn Sie das Dateisystem verwenden:

  1. Dateisysteme haben keine Transaktionen, was passiert, wenn ein Insert fehlschlägt und Sie zurückrollen müssen, die Datei wurde bereits gespeichert;
  2. Was passiert, wenn das Dateisystem nicht synchron ist mit der Datenbank?
  3. Es kompliziert Ihren Code und erhöht den Bug-Druck;
  4. Das Schreiben ins Dateisystem schafft ein zusätzliches Sicherheitsrisiko, denn Ihre DB-Anwendung kann jetzt Dateien auf dem Dateisystem schreiben und möglicherweise vorhandene Dateien überschreiben.

Allgemeiner
Das Dateisystem wird verwendet, weil das Speichern großer Blobs in einer DB langsam sein kann.
Allerdings sollten Sie nicht optimieren, bis Langsamkeit einsetzt. Frühzeitige Optimierung ist die Wurzel allen Übels.
Langsamkeit kann vielleicht nie ein Problem sein und außerdem können Sie auch viele Optimierungen in der DB durchführen.

2voto

svick Punkte 224493

Dinge wie diese in eine Datenbank zu speichern, ist wahrscheinlich die beste Option. Bis Sie Dateien haben, die mindestens Megabyte groß sind, sollte jede vernünftige Datenbank damit umgehen können.

1voto

Larry Lustig Punkte 47313

Ist die Profilinformation in irgendeiner Weise mit den vorhandenen Datenbankinformationen verbunden? Ist die Struktur der Profilinformationen vollständig regelmäßig oder hat der Benutzer Kontrolle über die Struktur seines Profils? Wie viele Benutzer werden Sie haben?

Wenn die Profilinformationen vollständig vom Funktionsumfang der Datenbank getrennt sind oder wenn sie entschieden variabel strukturiert sind und wenn Sie nur wenige Dateien haben, um das Dateisystem nicht zu überlasten, ist es eine Überlegung wert, sie in separaten XML-Dateien zu speichern.

Wenn es sehr viele Profile gibt und die Informationen für eine relationale Speicherung geeignet sind, würde ich sie wahrscheinlich in einer Datenbank speichern. Wenn sie mit der Funktionalität Ihrer Hauptdatenbank verbunden sind, gehören sie wahrscheinlich dorthin. Andernfalls könnten Sie überlegen, eine separate Datenbank nur für die Profile zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X