Задать вопрос
@TheInsable

Почему низкая скорость mongodb при поиске?

Имеется коллекция, в ней чуть больше 21 миллиона документов, у некоторых документов есть поле field: true, в остальных этого поля нет вовсе.

db.collection.find({"field": {$ne: true}}).count()

Занимает всегда от 14 секунд, таких документов 18.5КК. Индекс по этому полю создан, всего у документов в этой коллекции по 4 поля, индексы для каждого.

Как-нибудь можно увеличить скорость?
  • Вопрос задан
  • 434 просмотра
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Яндекс Практикум
    Бэкенд на Node.js для фронтенд-разработчиков
    3 месяца
    Далее
Решения вопроса 1
@lega
индексы на true/false не эффективны ни в каких базах, проще их перенести в отдельную коллекцию.
вполне возможно поиск идет не по индексу (а полный перебор), для индекса надо заполнить поле и искать по false.
Еще можете попробовать $exists: false
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы