Может ли MongoDB работать, когда размер базы данных больше ОЗУ? - PullRequest
6 голосов
/ 08 марта 2011

или когда индекс больше чем RAM?

Ответы [ 2 ]

10 голосов
/ 08 марта 2011

Да, это может работать.На каком уровне он будет работать - это скорее «Это зависит»

Главное, чтобы ваш рабочий набор мог поместиться в оперативной памяти.Так, если у вас есть 16 ГБ ОЗУ и 20 ГБ базы данных (включая индексы), например, если вам нужно получить доступ только к половине всех данных, так как другая половина устарела / фактически не запрошена, то все будет в порядке, как только половинабаза данных должна быть в ОЗУ (10 ГБ).

Рабочий набор является ключевым здесь.Например, если у вас есть приложение для ведения журналов, которое выводит данные в MongoDB, возможно, ваш рабочий набор представляет собой объем данных (и индексов) за последние 3 месяца и что все данные до этого не доступны.

Когда ваш рабочий набор превышает объем ОЗУ, он продолжает работать, но с заметно сниженной производительностью, так как тогда все равно придется постоянно обращаться к диску, который гораздо менее производителен.Если вы находитесь в ситуации превышения ограничений ОЗУ на машине, то здесь вступает в игру шардинг - так что вы можете сбалансировать данные на нескольких машинах, увеличивая объем данных, которые можно хранить в ОЗУ.

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