2010-12-28 7 views
6

Mögliche Duplizieren:
Storing Images in DB - Yea or Nay?Speichern von Bildern in der Datenbank oder im Dateisystem

Ist es schneller und zuverlässiger Bilder im Dateisystem zu speichern, oder sollte ich speichern sie in einer Datenbank ?

Nehmen wir an, die Bilder werden nicht größer als 200 MB sein. Ziel ist ein schneller und zuverlässiger Zugriff.

Wie entscheiden sich die Menschen im Allgemeinen, ob sie Dateien (z. B. Bilder, PDFs) im Dateisystem oder in der Datenbank speichern?

+1

Ich liebe es, ein Programmierer mit dem Spitznamen "Crashalot". :-) –

Antwort

13

Persönliche Meinung: Ich speichere IMMER Bilder im Dateisystem und speichere nur einen Dateipfad in der Datenbank. In vielen Situationen werden Datenbanken auf einem schnellen Speicher (gelesen: teurer Speicher, 15.000 U/min oder SSD-Laufwerke) gespeichert. Bilder oder andere Dateien können in der Regel auf einem langsameren Speicher (lesen Sie: billiger, größere Laufwerke, 7,2 k RPM Laufwerke) gespeichert werden.

Ich finde dies das Beste, da es ermöglicht, dass die Datenbank klein bleibt. Im Allgemeinen speichern Datenbanken "Daten" gut. Sie können kleine Datenmengen schnell suchen und abrufen. Dateisysteme speichern "Dateien" gut, sie sind optimiert, um größere Datenmengen schnell zu finden und wiederzugewinnen.

Offensichtlich gibt es Kompromisse zu beiden Ansätzen, und es wird keine Einheitsgröße für alle geben; Es kann jedoch einige Anwendungsfälle geben, bei denen das Speichern von Bildern in der Datenbank eine gute Sache ist, wenn sie alle sehr klein sind und Sie nicht viele davon erwarten und Ihre Datenbank sich auf demselben Speichermedium befindet wie Ihre Dateifreigabe , dann ist es wahrscheinlich sinnvoll, die Bilder direkt in die Datenbank zu legen.

Als eine Nebenbemerkung, SQL Server 2008R2 hat einen FileStream-Feldtyp, der das Beste aus beiden Welten bieten kann, ich habe es noch nicht verwendet, so kann ich nicht sagen, wie gut es funktioniert.

+0

Gut geschrieben - und darauf hingewiesen, dass einige Datenbanken Vorkehrungen für den Zugriff auf primäre Daten außerhalb der Datenbank haben. –

1

Mit der Datenbank-Ansatz haben Sie nur eine Sache zu verbinden. Wenn Ihre Benutzer verteilt werden, könnte das einfacher sein. Beachten Sie, dass die Effizienzprobleme nicht von Bedeutung sind, wenn auf die Bilder nicht zu häufig zugegriffen wird.

4

Store-Dateien/Bilder in der Datenbank, wenn Sie folgende erfordern:

  • Access Control
  • Versioning
  • Checkin/Check out
  • auf Metadaten basieren Searching

Das hat war das Design von großen CMS wie SharePoint gewesen.

Wenn Ihr Inhalt jedoch viel statischer ist und sich im Laufe der Zeit nicht ändert, können Sie mit Dateien ystem gehen und Optimierungen/Cache auf dem Webserver aktivieren.

0

Zunächst einmal müssen Sie wissen, dass in Datenbanken, können Sie keine Dateien speichern kann, größer als ich denke, 8 MB, leavinig, dass, so dass ich denke, besser ist, Dateien im System zu speichern und kleine Bilder in der Datenbank

+2

Dies hängt von der Datenbank ab. SQL Server kann bis zu 2 GB (oder vielleicht "nur" 1 GB?) Speichern. –

+0

Ich weiß nicht, ich denke, ist weniger –

Verwandte Themen