Mi chiedo se la memorizzazione di tutti i file caricati in GridFS sia più veloce di archiviarli sul solito file system, ad es. Ext4 (in termini di velocità di lettura/scrittura e carico medio del server).GridFS è più veloce del solito FS?
9
A
risposta
11
In generale è slower per il solito stile di accesso al filesystem. Ma può beneficiare delle belle funzionalità di MongoDB:
- È possibile associare eventuali metadati ai file e interrogarli in un modo usuale. In realtà i file vengono archiviati come normali documenti Mongo nelle raccolte
fs.files
efs.chunks
. - Replica. Con un set di repliche si otterrà una (quasi) istantanea backup, failover e read scalability (la richiesta di lettura può andare su nodi slave).
- Sharding. Come qualsiasi altra raccolta, è possibile distribuire file su più istanze di Mongo con auto-sharding. Ciò migliorerà la scalabilità di scrittura.
2
- Se il file system limita il numero di file in una directory, è possibile utilizzare GridFS per memorizzare tutti i file in base alle esigenze.
- Quando si desidera mantenere i file e i metadati automaticamente sincronizzati e distribuiti su un numero di sistemi e strutture. Quando si utilizzano i set di repliche distribuite geograficamente, MongoDB può distribuire automaticamente i file e i relativi metadati a un numero di istanze di mongod e facilita.
- Quando si desidera accedere alle informazioni da porzioni di file di grandi dimensioni senza dover caricare interi file in memoria, è possibile utilizzare GridFS per richiamare sezioni di file senza leggere l'intero file in memoria.