Интересно, стоит ли хранить все загруженные файлы в GridFS быстрее, чем хранить их в обычной файловой системе, например. Ext4 (с точки зрения скорости чтения/записи и средней загрузки сервера).Является ли GridFS быстрее обычного FS?
9
A
ответ
11
В общем, это slower для обычного стиля доступа к файловой системе. Но это может пригодиться отличным функциям MongoDB:
- Вы можете связать любые метаданные с файлами и запросить его обычным способом. Фактически файлы хранятся в виде обычных монгольских документов в
fs.files
иfs.chunks
коллекциях. - Репликация. С набором реплик вы получите (почти) мгновенное резервное копирование, восстановление после сбоя и чтения (запрос на чтение может перейти на подчиненные узлы).
- Sharding. Как и в любой другой коллекции, вы можете распространять файлы в нескольких экземплярах Mongo с автоматическим отрисовкой. Это улучшит масштабируемость записи.
2
- Если ваша файловая система ограничивает количество файлов в каталоге, вы можете использовать GridFS хранить столько файлов, сколько необходимо.
- Если вы хотите, чтобы ваши файлы и метаданные автоматически синхронизировались и развертывались по нескольким системам и средствам. При использовании географически распределенных наборов реплик MongoDB может автоматически распространять файлы и их метаданные на несколько экземпляров mongod и облегчает их.
- Если вы хотите получить доступ к информации из частей больших файлов, не загружая целые файлы в память, вы можете использовать GridFS для вызова разделов файлов без чтения всего файла в памяти.