Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

Benchmarking (Objekte in DB vs. Objekte als Dateien)

  Alt 27. Apr 2010, 21:00
Datenbank: MySQL • Version: 5.x • Zugriff über: PHP-Schnittstellen
Moin,

der eine oder andere mag es wissen, dass ich mich mit einem Foren-Projekt befasse. In den einschlägigen Supportforen wird eine Frage immer wieder diskutiert: Legt man binäre Daten (in diesem Fall Attachments) lieber als Dateien im Dateisystem ab oder steckt man sie mit in die Datenbank.

Da gibt es einmal die, die sagen "Daten in die DB, Dateien ins Filesystem". Ich halte die Aussage für zu pauschal, da Anhänge und Bilder in diesem Zusammenhang sehr wohl Daten sind. Auf einem popeligen Shared-Webhosting mit 5.000+ Nutzern auf einem DB-Server und einer limitierten DB-Größe von maximal 30 MBytes würde ich ebenfalls davon abraten, dort noch Anhänge unterbringen zu wollen - logisch.

Bei Backups ist das Hantieren mit Verzeichnisstrukturen, die 30.000+ Dateien enthalten, auch nur bedingt spaßig. Da lasse ich lieber die DB kopieren, die dann halt um 7 GBytes groß ist. Die Verbindung zum Backup-Server ist schnell, das juckt mich eigentlich nicht.


Wie könnte ich jetzt zu sinnvollen Aussagen darüber kommen, welche Vorgehensweise mit der mir zu Verfügung stehenden Hardware und dem zu erwartenden Nutzeraufkommen die geeignetere ist? Was bedeutet es konkret für ein DBMS wie MySQL, wenn es Dateianhänge in der Größe von ein paar KBytes bis hin zu max. 5 Mbytes zu verwalten hat? Da niemand erwartet, dass alle Records gleichzeitig im Speicher liegen, würde ich es wagen, die These aufzustellen, dass ein aktuelles DMBS (selbst MySQL...) damit zurecht kommen MUSS. Wie kann ich also herausfinden, wie mein DBMS beeinflusst wird, wenn eine Tabelle existiert, die "wirklich groß" (30.000+ Records, 6 GBytes) ist?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat