2013-05-09 21 views
15

È necessario memorizzare un numero elevato di immagini (da circa 10.000 immagini al giorno) con una dimensione media di circa 1 - 10 MB per ciascuna immagine.Memorizzazione delle immagini: MongoDb vs File System

È possibile memorizzare queste immagini in MongoDB utilizzando la libreria GridFS o semplicemente memorizzando la conversione Base64 come una stringa.

La mia domanda è, è MongoDB adatto per un tale carico utile o è meglio utilizzare un file system?

Molte grazie,

+0

Sembra essere un duplicato di [questa domanda] (http://stackoverflow.com/questions/6212990/mongodb-gridfs-vs-directly-disk- io). –

+0

un'alternativa sarebbe avere metadati di immagini in mongoDB e avere le immagini stesse su qualcosa come S3 (+ opzionalmente cloudfront) –

risposta

6

MongoDB GridFS ha un sacco di vantaggi rispetto ad un normale file system ed è sicuramente in grado di far fronte alla quantità di dati che si sta descrivendo come è possibile scalare con un cluster mongo sharded. Non ho salvato molti dati binari per conto mio, ma non penso che ci sia una vera differenza tra i dati binari e il testo. Quindi: sì, è adatto per il carico utile.

2

L'implementazione di query e operazioni sugli oggetti file che vengono salvati è più semplice con GridFS. Inoltre, GridFS si occupa di backup/replica/ridimensionamento. Tuttavia, servire i file è più veloce utilizzando Filesystem + Nginx rispetto a GridFS + Nginx (guarda qui: https://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/). La velocità di pubblicazione "più lenta" di GridFS può tuttavia essere sfruttata quando viene utilizzato il sharding

Problemi correlati