Монго групповой запрос не использует индексы или замедляет запросы - PullRequest
1 голос
/ 18 августа 2011

Я использовал mongodb 1.8.1. В котором у меня есть коллекция, которая содержит более 1,8 миллиона записей. В этой коллекции все записи являются простыми объектными средствами, а не вложенными объектами или массивом

вроде как

{ name : "xyz" , "id" : 123 ,"a" : "na" , "c" : "in" , "cmp" : "pq" , "ttl" : "sd"}

Все записи такие.

В этих коллекциях одновременно запускается еще 5 запросов, в которых 2 простых запроса, которые содержатся в одном, а другой - простой запрос, который правильно использует индекс.

Еще 2 - это групповые запросы, в которых существуют поля условий в индексах, а один содержит.

Еще один отдельный запрос с надлежащим условием, которое также является индексом.

И порядок выполнения запроса: сначала запросы группы, затем 1 простой запрос, затем отдельный запрос и последний простой запрос.

Таким образом, данные загружаются медленно.

Если такие 2-3 вызова делают, то он загружается очень низко, иногда дает время ожидания чтения ошибки.

Коллекции имеют более 1 индекса.

1 Ответ

1 голос
/ 18 августа 2011

$ существующие запросы не используют индексы (исправлено начиная с 1.9.1 и далее)

групповые команды используют JS-контекст mongodb, который блокируется исключительно во время его использования.Это повлияет на производительность одновременных групповых запросов.Новая структура агрегации находится в стадии разработки, которая должна помочь в этом (2.1 и далее).Монитор https://jira.mongodb.org/browse/SERVER-447 для прогресса.По моему опыту, как правило, более эффективно выполнять группирование, например, агрегирование на стороне приложения.

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