В этой главе мы узнаем об ограничениях индексирования и других его компонентах.
Дополнительные накладные расходы
Каждый индекс занимает некоторое пространство, а также вызывает накладные расходы на каждую вставку, обновление и удаление. Поэтому, если вы редко используете свою коллекцию для операций чтения, имеет смысл не использовать индексы.
Использование ОЗУ
Поскольку индексы хранятся в ОЗУ, следует убедиться, что общий размер индекса не превышает лимит ОЗУ. Если общий размер увеличивает размер ОЗУ, он начнет удалять некоторые индексы, что приведет к снижению производительности.
Ограничения запроса
Индексирование нельзя использовать в запросах, которые используют —
- Регулярные выражения или операторы отрицания, такие как $ nin, $ not и т. Д.
- Арифметические операторы, такие как $ mod и т. Д.
- пункт $ где
Следовательно, всегда желательно проверять использование индекса для ваших запросов.
Пределы индекса ключа
Начиная с версии 2.6, MongoDB не будет создавать индекс, если значение существующего поля индекса превышает ограничение ключа индекса.
Вставка документов, превышающих предел индекса ключа
MongoDB не будет вставлять какие-либо документы в индексированную коллекцию, если значение индексированного поля этого документа превышает ограничение ключа индекса. То же самое в случае с mongorestore и mongoimport.