Составные индексы MongoDB для фильтрации и сортировки в БОЛЬШОЙ коллекции

Может кто-нибудь сказать мне, пожалуйста, можно ли сделать индексы в Mongodb более эффективными в этом случае: у меня есть база данных с 50 миллионами элементов. Есть два индекса по полям "ico" и "publishDate". Ico используется для фильтрация, а publishDate — для сортировка. Можно ли сделать его более эффективным, как составной индекс? Можно ли совмещать фильтрацию и сортировку в составном индексе? Важно ли выбрать, какой из них должен быть первым в определении индекса? Это немного сложно, потому что у меня нет коллекции на локальном хосте.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создайте составной индекс как {ico: 1, publishDate: 1}. См. документ.

Почему вы выбираете ico в качестве первого поля в индексе? Как сказано в документации, это важно в случае, если я хочу использовать ico-фильтр без порядка публикацииDate. Но важно ли это, если я использую оба поля все время? Я сделал индекс несколько минут назад и сначала использовал publishDate.

Čamo 18.02.2019 15:25

Подробное объяснение см. в emptysqua.re/blog/оптимизация-mongodb-составные-индексы.

kevinadi 19.02.2019 04:05

Другие вопросы по теме