Equality-Sort-Range (ESR) rule — это рекомендация по упорядочению полей в составном индексе для максимальной эффективности запросов в MongoDB.
Три компонента:
status: "active")sort({ date: 1 }))age: { $gte: 18 })Всегда определяй поля составного индекса в таком порядке: Equality → Sort → Range.
db.collection.createIndex({ status: 1, date: 1, age: 1 })
Для запроса вроде:
db.users.find({ status: "active", age: { $gte: 18 } }).sort({ date: 1 })
Правильный порядок индекса будет:
status первым — Equalitydate вторым — Sortage третьим — RangeСоблюдение ESR rule гарантирует, что MongoDB сможет использовать индекс максимально эффективно — сканируя меньше документов, избегая сортировок в памяти и улучшая общую производительность запросов. Отклонение от этого порядка может вынудить MongoDB выполнять лишнюю работу: читать больше документов, чем нужно, или сортировать результаты без использования индекса.
В правиле ESR поля с условиями равенства должны всегда стоять первыми в составном индексе, потому что они наиболее эффективно сокращают исходный набор данных перед применением других операций.
Новый — ещё не проверен сообществом
Вы