Обрабатывать несколько запросов, которые точно такие же в mongodb - PullRequest
0 голосов
/ 27 октября 2018

Предположим, у меня недавно был запрос 1000 db.collection.find (), и это все те же запросы.

Но эти запросы были сделаны другим пользователем 1000, поэтому MongoDB имеет другой запрос 1000.

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

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

поэтому мой вопрос заключается в том, что MongoDB будет обрабатывать каждый запрос отдельно?

Да. Каждый запрос выполняется. Вы можете проверить это в mongostat

MongoDB воспользуется преимуществом предварительно обработанного результата запроса

MongoDB добавит данные и индексы, которые часто используются, к рабочему набору в памяти

Он также будет кешировать наиболее эффективный план для вашего запроса, как описано в документе Планировщик запросов.

0 голосов
/ 27 октября 2018

Существует кэширование документов на стороне сервера ( документация ), поэтому очень вероятно, что ваша система ввода-вывода будет поражена каждый раз снова и снова. Кроме того, план запроса кэшируется ( документация ). При этом результаты не будут кэшироваться, что также указано в документации (первая ссылка):

MongoDB не кэширует результаты запроса, чтобы вернуть кэшированные результаты для идентичных запросов.

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