Как рассчитать будущий размер базы данных в Монго? - PullRequest
6 голосов
/ 23 декабря 2011

Я использую MongoDB, и мы действительно довольны этой БД. Но недавно наш клиент спросил нас о размере базы данных в будущем.

Мы знаем, как рассчитать это в типичной реляционной базе данных, но у нас нет большого опыта работы с этой базой данных No-SQL.

Вещи, которые мы знаем:

  • db.namecollections.stats () предоставляет нам важную информацию, например, размер (документы), avgObjSize (документы), storageSize, totalIndexSize (больше здесь )

С size и totalIndexSize мы можем вычислить общий размер только для коллекции, но здесь возникает большой вопрос:

  • Почему существует разница между размером коллекции и размером хранилища ???

Как можно рассчитать это, думая о будущем размере базы данных?

1 Ответ

6 голосов
/ 23 декабря 2011

MongoDB немного подкладывает документы, чтобы их можно было немного увеличить без необходимости перемещения в конец коллекции на диске (дорогая операция).

Кроме того, mongo предварительно выделяет файлы данных, создаваяa следующий и заполняющий его нулями, прежде чем он понадобится для увеличения скорости.

Вы можете бросить флаг --noprealloc на mongod, чтобы предотвратить это.

Если вам нужна дополнительная информацияВы можете посмотреть здесь

Что касается вашего вопроса о расчете дискового пространства на 5 лет, если вы можете вычислить уравнение для роста ваших данных, сделайте некоторые предположения о том, что вы в среднемразмер документа и сколько у вас будет индексов, возможно, вы сможете что-то придумать.

Поработав и в банке, я бы предложил создатьбезумная верхняя граница, а затем в четыре раза.Внутри банка деньги дешевы, ошибок в расчетах нет.

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