Суть: в коллекции 8.8 млн записей, 5 ГБ. В каждой

записи по 15 полей, нужно производить поиск по 6 из них (по одному, по нескольким или по всем). Сервер - DigitalOcean $5 Droplet.

Создавал индексы по 6 полям отдельно, соответственно по одному любому полю поиск 80-140мс. Мульти-индекс работает, но только с опцией sparse и только с определенным кол-вом полей (от 3 до 6). Создать десятки индексов на все случаи жизни считаю костылём, надеюсь - это не не офф решение монго.

Вопрос: как сделать правильный индекс, чтобы можно было фильтровать 9 млн записей за 80-140 мс при любой выборке, будь то 1 поле или сразу 6?

2 ответов

10 просмотров

не вижу проблемы, чтото не устраивает в производительности на 6 отдельных индексах?

Возможно подойдёт wildcard index, но в остальном, задача индекса — уменьшить объём данных для поиска. Если вы ищите по всему документу, то возможно либо у вас не эффективная схема, либо вам нужен другой инструмент

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

Обсуждают сегодня

Всем привет. Подскажите, почему не меняется значение поля при переключении сайта?
Alexander Peterikov
11
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
привет, а расскажите как бэкапите свой vault raft cluster CE? я немного почитал и понял, что нужно как-то выполнять vault operator raft snapshot save backup.snapshot подсовыва...
[DBST] Dmitry Knyazev
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Всем привет! Напишите пожалуйста, кто мог бы оффлайн преподавать некоторые курсы по Odoo в Алматы в одном из ВУЗов? Мы сейчас вместе с Odoo запускаем университетскую программу...
Adil Dauletkhan
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
Карта сайта