Составной индекс в MongoDB — это индекс, определённый на нескольких полях в одной структуре индекса. Например:
{ a: 1, b: 1, c: 1 }
Это говорит MongoDB индексировать поля a, b и c вместе, в этом конкретном порядке.
Порядок полей критичен, потому что MongoDB использует правило префикса — она может использовать индекс только если запрос включает префикс слева направо индексированных полей.
Имея индекс { a: 1, b: 1, c: 1 }, MongoDB может эффективно обрабатывать запросы по:
aa и b вместеa, b и c вместеОднако MongoDB не может использовать этот индекс эффективно для запросов по:
bcb и c вместеВсегда размещай наиболее часто запрашиваемые поля в первую очередь при определении составного индекса. Если твоё приложение часто фильтрует по b без a, потребуется отдельный индекс на b — составной индекс выше не поможет.
Правильный порядок полей в составном индексе напрямую определяет, какие паттерны запросов будут от него выигрывать. Плохо упорядоченный индекс может привести к полному сканированию коллекции, что негативно скажется на производительности.
Составной индекс на { a: 1, b: 1, c: 1 } может эффективно поддерживать запросы, которые фильтруют только по полю b, без необходимости обращаться к полю a в запросе.
Новый — ещё не проверен сообществом
Вы