Uso Node.js per il mio progetto.Devo memorizzare un'immagine in MongoDB o nel file system locale (tramite Node.js)
Devo memorizzare un'immagine nel file system locale o devo archiviarla in MongoDB?
Quale modo è più scalabile?
Uso Node.js per il mio progetto.Devo memorizzare un'immagine in MongoDB o nel file system locale (tramite Node.js)
Devo memorizzare un'immagine nel file system locale o devo archiviarla in MongoDB?
Quale modo è più scalabile?
La soluzione più scalabile consiste nell'utilizzare un servizio di archiviazione condiviso come Amazon S3 (o craft your own).
Ciò consente di scalare orizzontalmente molto più facilmente quando si decide di aggiungere macchine al proprio livello di applicazione, poiché non sarà necessario preoccuparsi di eventuali incubi di migrazione.
L'idea di base di questo è di mantenere il livello di archiviazione disaccoppiato dal livello dell'applicazione. Quindi, utilizzando questa idea, è possibile creare un processo node.js su un computer separato che accetta i caricamenti di file e li scrive su disco.
Vorrei usare GridFS per trarre vantaggio da sharding ma per ottenere prestazioni migliori userei il filesystem con nginx.
Se stai progettando un sistema sensibile alle prestazioni, utilizza il file system per memorizzare le tue immagini senza dubbio.
Potete trovare le prestazioni confrontare da questo blog: http://blog.thisisfeifan.com/2013/12/mongodb-gridfs-performance-test.html
In realtà, è possibile trovare i GridFS MongoDB consigliati utilizzano casi qui: https://docs.mongodb.com/manual/core/gridfs/#when-to-use-gridfs
L'OP non chiede per la pubblicità su Amazon. MongoDB sarebbe anche scalabile ad una frazione del costo del pagamento ad Amazon nel lungo periodo. Ma la domanda riguarda MongoDB e il filesystem. –