Я знаю, что MongoDB
принимает и извлекает записи как JSON/BSON objects
, но как он фактически хранит эти файлы на диске? Сохраняются ли они как коллекция отдельных файлов *.json
или как один большой файл? У меня есть догадка относительно последнего, так как MongoDB
docs заявляют, что он лучше всего работает в системах с ext4/xfs
, которые лучше обрабатывают большие файлы. Кто-нибудь может подтвердить?
Как данные в базе данных MongoDB хранятся на диске?
Ответ 1
Данная база данных mongo разбивается на ряд файлов BSON на диске с увеличением размера до 2 ГБ. BSON - это собственный формат, созданный специально для MongoDB.
Эти слайды должны отвечать на все ваши вопросы:
http://www.slideshare.net/mdirolf/inside-mongodb-the-internals-of-an-opensource-database
Ответ 2
MongoDB хранит данные на диске как BSON в каталоге путей к данным, который обычно /data/db. Там должно быть два файла на коллекцию, collection.0, который хранит данные (и это целое затем увеличивается по мере необходимости) и collection.ns, который хранит метаданные имен для коллекции.
Ответ 3
Подробную документацию формата BSON можно найти здесь: http://bsonspec.org/
Ответ 4
До mongodb 3.0 http://blog.mongolab.com/2014/01/how-big-is-your-mongodb/ Если вы включите механизм хранения wiredtiger в MongoDB 3.0, он будет использовать модель хранения wiredtiger http://docs.mongodb.org/v3.0/core/storage/#storage-wiredtiger