надо посчитать количество документов по определенным фильтрам. Но этот процесс занимает так много времени около 10 минут.
Как можно оптимизировать?
Как часто?
Это все зависитт от конечного пользователя
В таком случае по этим фильтрам необходимо построить индексы
Я сделал, но один индекс вызвает проблемы. Не могу построить индекс для ординарного поля и встроенного поля в одном индексе. Когда делаю запрос в таком ввиде {$and: [ {t: {$gte:"2020-09-07T00:00:00", $lte: "2020-09014T23:59:59" }}, {n: {$in:[1006]}}, {"d.r": {$eq:"non-staff"}} ]} не видно индекса, то есть он не видит созданный мной индекс. Вот скрин моих созданных индексов
Меня смущает размер ваших индексов
Я тестирую просто))
Собираюсь удалить не нужные
Я в mongoDB новичок, а сколько индексов должно быть?
А как у вас выглядит документ?
Вот сам документ
Размер в кило, мегабайтах. У вас есть индексы в гигабайт, а есть в 4 килобайта
Ясно. Стандарт это килобайт или мегабайты
Возможно вам больше подойдёт Attribute-Value модель для таких данных Те поля по которым вы хотите фильтровать сложите в массив документов attrs: [{a: “t”, v: DateTime}, ...] Сделайте компаунд индекс attrs.a, attrs.v
В вашем случае, последние два индекса должны быть не меньше 800 МБ
Обсуждают сегодня