2010-12-31 2 views
9

Интересно, стоит ли хранить все загруженные файлы в GridFS быстрее, чем хранить их в обычной файловой системе, например. Ext4 (с точки зрения скорости чтения/записи и средней загрузки сервера).Является ли GridFS быстрее обычного FS?

ответ

11

В общем, это slower для обычного стиля доступа к файловой системе. Но это может пригодиться отличным функциям MongoDB:

  • Вы можете связать любые метаданные с файлами и запросить его обычным способом. Фактически файлы хранятся в виде обычных монгольских документов в fs.files и fs.chunks коллекциях.
  • Репликация. С набором реплик вы получите (почти) мгновенное резервное копирование, восстановление после сбоя и чтения (запрос на чтение может перейти на подчиненные узлы).
  • Sharding. Как и в любой другой коллекции, вы можете распространять файлы в нескольких экземплярах Mongo с автоматическим отрисовкой. Это улучшит масштабируемость записи.
2

When to use GridFS

  • Если ваша файловая система ограничивает количество файлов в каталоге, вы можете использовать GridFS хранить столько файлов, сколько необходимо.
  • Если вы хотите, чтобы ваши файлы и метаданные автоматически синхронизировались и развертывались по нескольким системам и средствам. При использовании географически распределенных наборов реплик MongoDB может автоматически распространять файлы и их метаданные на несколько экземпляров mongod и облегчает их.
  • Если вы хотите получить доступ к информации из частей больших файлов, не загружая целые файлы в память, вы можете использовать GridFS для вызова разделов файлов без чтения всего файла в памяти.