Производительность MongoDB - отличается от запроса по двум полям с индексом - PullRequest
0 голосов
/ 24 сентября 2018

У нас есть коллекция с двумя полями (A и B), оба имеют индекс.

Удивление любого из них удивительно быстро.Но на самом деле запрос представляет собой отчет в A с фильтром в другом поле, B.

db.getCollection('Collection').distinct( "A" , { "B" : "b1" }  )

Это действительно очень медленно, поскольку он сканирует коллекцию (к сожалению, b1 не фильтрует более 50%).Есть ли способ сделать это быстрее в MongoDB?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Я рекомендую использовать составной индекс для решения этой проблемы.Поскольку приоритет важен в составном индексе на основе вашего запроса, я рекомендую вам использовать этот индекс {A: 1, B: 1}

0 голосов
/ 24 сентября 2018

В соответствии с этим билетом JIRA вы можете просто создать составной индекс, подобный этому:

db.collection.createIndex({ "B": 1, "A:" 1 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...