Что подразумевается под размером файлов и размером данных в MongoDB? - PullRequest
7 голосов
/ 09 декабря 2011

Я начал использовать MongoDB несколько дней назад, и у меня возникли проблемы с пониманием архитектуры некоторых баз данных.Если я выполню запрос db.stats ();у меня есть размер файла, размер данных, размер хранилища и размер индекса.Во время серфинга я обнаружил, что следующее:

Storagesize = размер данных + свободное место, выделенное для коллекции

datasize = размер базы данных, используемой MongoDB

Здесь я не мог понятьпредставление файлового формата и размера данных.Для datasize -> indexsize также включен?Пожалуйста, предоставьте точное решение для указанных атрибутов и, пожалуйста, исправьте меня, если я упомянул что-либо неправильно.

Заранее спасибо,

Ответы [ 3 ]

17 голосов
/ 09 декабря 2011
  • dataSize: сумма всех фактических данных (объектов BSON), используемых базой данных, в байтах
  • indexSize: сумма всех индексов, используемых базой данных, в байтах
  • storageSize: dataSize плюс все предварительно выделенное пространство для сбора в байтах
  • fileSize: сумма размеров всех файлов, выделенных для этой базы данных (например, test.0 + test.1 и т. д.), в байтах
  • nsSizeMB: размер файла пространства имен для этой базы данных, в мегабайтах.
  • avgObjSize: средний размер объектов документа в базе данных.Это значение включает отступы и, следовательно, может не измениться при уменьшении размера документов.
2 голосов
/ 02 июня 2016

Как объяснено в этом посте о различных метриках производительности MongoDB, которые вы должны отслеживать (с MMAPv1), вот все метрики размера хранилища, возвращаемые dbStats, которые вы должны отслеживать:

  • dataSize измеряет пространство, занимаемое всеми документами и заполнением в базе данных.Из-за заполнения dataSize уменьшается, если документы удаляются, но не когда они уменьшаются или становятся больше после обновления - эти операции просто добавляют или заимствуют из отступа документа.
  • indexSize возвращает размер всехиндексы, созданные в базе данных.
  • storageSize измеряет размер всех экстентов данных в базе данных. В MMAPv1 оно всегда больше или равно dataSize, поскольку экстенты содержат свободное пространство, еще не использованное или не освобожденное удаленными и перемещенными документами.На storageSize это не влияет, когда документы уменьшаются или перемещаются.
  • fileSize соответствует размеру ваших файлов данных.Очевидно, он всегда больше, чем storageSize, и его можно рассматривать как место хранения вашей базы данных на диске.Он уменьшается только при удалении базы данных и не затрагивается при удалении коллекций, документов или индексов.

Вот диаграмма с различными важными метриками хранения, возвращаемыми dbStats: dbStats storage metrics for MongoDB ПРИМЕЧАНИЕ. С механизмом хранения MMAPv1 MongoDB предварительно выделяет дополнительное пространство на диске для документов, поэтому эффективные обновления на месте возможны, поскольку документы имеют пространство для роста без необходимости перемещения.Это дополнительное пространство называется padding .

1 голос
/ 17 сентября 2012

Я понимаю, что это старый вопрос, но я решил, что я буду ссылаться на официальные документы для db.stats() для всех, кто ищет подобную информацию (как и я).

Статистика базы данныхСправочник :: Поля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...