2013-05-09 1 views
15

Ich muss eine große Anzahl von Bildern speichern (von etwa 10.000 Bilder pro Tag) mit einer durchschnittlichen Größe von etwa 1 bis 10 MB für jedes Bild.Speichern von Bildern: MongoDb vs Dateisystem

Ich kann diese Bilder in MongoDB mit der GridFS-Bibliothek speichern oder einfach die Base64-Konvertierung als Zeichenfolge speichern.

Meine Frage ist, ist MongoDB geeignet für eine solche Nutzlast oder ist es besser, ein Dateisystem zu verwenden?

Vielen Dank,

+0

Scheint ein Duplikat von [diese Frage] zu sein (http://stackoverflow.com/questions/6212990/mongodb-gridfs-vs-directly-disk-) io). –

+0

eine Alternative wäre, Metadaten von Bildern in mongoDB zu haben und die Bilder selbst auf etwas wie S3 (+ optional Cloudfront) zu haben –

Antwort

6

MongoDB GridFS hat viele Vorteile gegenüber einem normalen Dateisystem, und es ist definitiv in der Lage mit der Datenmenge zu bewältigen Sie beschreiben, wie Sie mit einem sharded Mongo Cluster skalieren können. Ich habe nicht so viele Binärdaten selbst gespeichert, aber ich glaube nicht, dass es einen echten Unterschied zwischen den binären Daten und dem Text gibt. Also: Ja, es ist für die Nutzlast geeignet.

2

Die Implementierung von Abfragen und Operationen für die zu speichernden Dateiobjekte ist mit GridFS einfacher. Darüber hinaus sorgt GridFS für Backup/Replikation/Skalierung. Das Bereitstellen der Dateien erfolgt jedoch schneller mit Dateisystem + Nginx als mit GridFS + Nginx (siehe hier: https://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/). GridFS 'langsamere' Geschwindigkeit kann jedoch genutzt werden, wenn Sharding verwendet wird