Frage

las ich einige Post in dieser Hinsicht, aber ich verstehe immer noch nicht, was die beste Lösung in meinem Fall.
Ich Beginne einen neuen webApp Schreiben und das Back-End über 1-10000000 Bilder liefern wird . (Durchschnittliche Größe 200-500kB für ein einzelnes Bild)

Meine Website liefern Inhalte und Bilder auf 100-1000 Nutzer zur gleichen Zeit.

Ich mag auch Provider die Kosten so gering wie möglich halten (aber das ist eine Nebenpflicht). Ich denke, dass im Dateisystem ist weniger teuer, wenn die Kosten der DB Größe verglichen.

Ich persönlich mag die Idee, alle meine Bilder in der DB, aber jeder Vorschlag wird sehr geschätzt werden :)

Glauben Sie, dass in meinem Fall die DB Ansatz die richtige Wahl ist?

War es hilfreich?

Lösung

all diese Bilder in Ihrer Datenbank Putting wird es sehr machen, sehr groß. Dies bedeutet, dass Ihr DB-Engine beschäftigt sein wird, das Caching alle diese Bilder (eine Aufgabe ist es nicht wirklich entworfen für), wenn es stattdessen heiße Anwendungsdaten Cachen werden.

Lassen Sie die Datei-Caching auf das OS und / oder Ihre Reverse-Proxy -. Sie werden es besser sein

Andere Tipps

Einige andere Gründe Bilder im Dateisystem zu speichern:

  • Bild-Server kann auch ausgeführt werden, wenn die Datenbank belegt ist oder nach unten.
  • Dateisysteme sind auf Speichern von Dateien und sind es sehr effizient.
  • Dumping Daten in Ihrer Datenbank bedeutet langsamer Backups und andere Vorgänge.
  • Keine serverseitige ein Bild zu servieren, einfach nur alte IIS / Apache codiert benötigt.
  • Sie können mit spottbillig Web-Servern skalieren schneller oder potenziell zu einem CDN.
  • können Sie führen damit verbundene Arbeiten (Erzeugung von Thumbnails, etc.), ohne die Datenbank beteiligt ist.
  • Ihr Datenbank-Server kann mehrere der „echten“ Tabellendaten im Speicher halten, das ist, wo Sie Ihre Datenbank Geschwindigkeit für Abfragen zu bekommen. Wenn es seine wertvollen Speicher verwendet Cache speichern Bilddateien, die Sie nicht kaufen kaum etwas Geschwindigkeit her im Vergleich zu mehr des Photoindex im Speicher.

Wenn Sie mit binären Objekten zu tun, um ein Dokument zentrierten Ansatz für Architektur folgen und keine Dokumente wie PDF-Dateien und Bilder in der Datenbank, werden Sie schließlich es Refactoring müssen, wenn Sie alle Arten von Performance-Problemen mit Ihrer Datenbank zu sehen. Nur speichern Sie die Datei auf dem Dateisystem und hat den Pfad in einer Tabelle Ihrer databse. Es gibt auch eine physikalische Begrenzung für die Größe des Datentypen, den Sie es serialisiert und speichert in der Datenbank verwenden. speichern Sie es einfach auf das Dateisystem und darauf zuzugreifen.

Ihr erster Satz sagt, dass Sie einige Beiträge zu diesem Thema gelesen habe, so dass ich nicht die Mühe in Links zu Artikeln setzen, die diese decken. Nach meiner Erfahrung, und auf dem, was Sie so weit, wie die Anzahl der Bilder und die Größen der Bilder geschrieben haben, wirst du teuer in DB Leistung zahlen, wenn Sie sie in der DB speichern. Ich würde sich auf dem Dateisystem gespeichert werden.

Welche Datenbank verwenden Sie? MS SQL Server 2008 bietet FILESTREAM Speicher

  

ermöglicht die Speicherung von und effizienten Zugriff auf BLOB-Daten eine Kombination von SQL Server 2008 und das NTFS-Dateisystem. Es umfasst Optionen für BLOB-Speicher, Konfiguration von Windows und SQL Server für die Verwendung von FILESTREAM-Daten, Überlegungen für FILESTREAM mit anderen Merkmalen kombiniert und Implementierungsdetails wie Partitionierung und Leistung.

Details

Wir verwenden FileNet, einen Server für die Bildgebung optimiert. Es ist sehr teuer. Eine billigere Lösung ist, einen Dateiserver zu verwenden.

Bitte berücksichtigen nicht große Dateien auf einem Datenbankserver gespeichert werden.

Wie andere erwähnt haben, speichern Verweise auf die großen Dateien in der Datenbank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top