Механизм проекции MongoDB
Я задавался вопросом о механизме проекции в MongoDB. Знаете ли вы, обязательные поля проецируются с диска напрямую или из оперативной памяти? весь документ извлекается в оперативную память, а затем происходит проекция, или только необходимые поля извлекаются с диска в оперативной памяти?
1 ответ
MongoDB хранит все последние использованные данные в оперативной памяти. Если ваш рабочий набор данных помещается в оперативную память, MongoDB обслуживает все запросы из памяти, в противном случае он ударит по диску для доступа к данным.
Теперь, как вы можете проверить, извлекаются ли данные из ОЗУ или с диска?
- Наблюдайте поле доходности в любом запросе, используя оператор $ объяснение. Это скажет вам, сколько раз считыватель выдал свою блокировку, потому что данные не были в ОЗУ.
- Такие программы, как mongostat, могут сообщить вам, какие сбои страниц (когда данные должны быть выгружены в ОЗУ с диска) происходят в вашем экземпляре mongoDB.