Учебники

MongoDB — Ограничения индексации

В этой главе мы узнаем об ограничениях индексирования и других его компонентах.

Дополнительные накладные расходы

Каждый индекс занимает некоторое пространство, а также вызывает накладные расходы на каждую вставку, обновление и удаление. Поэтому, если вы редко используете свою коллекцию для операций чтения, имеет смысл не использовать индексы.

Использование ОЗУ

Поскольку индексы хранятся в ОЗУ, следует убедиться, что общий размер индекса не превышает лимит ОЗУ. Если общий размер увеличивает размер ОЗУ, он начнет удалять некоторые индексы, что приведет к снижению производительности.

Ограничения запроса

Индексирование нельзя использовать в запросах, которые используют —

  • Регулярные выражения или операторы отрицания, такие как $ nin, $ not и т. Д.
  • Арифметические операторы, такие как $ mod и т. Д.
  • пункт $ где

Следовательно, всегда желательно проверять использование индекса для ваших запросов.

Пределы индекса ключа

Начиная с версии 2.6, MongoDB не будет создавать индекс, если значение существующего поля индекса превышает ограничение ключа индекса.

Вставка документов, превышающих предел индекса ключа

MongoDB не будет вставлять какие-либо документы в индексированную коллекцию, если значение индексированного поля этого документа превышает ограничение ключа индекса. То же самое в случае с mongorestore и mongoimport.