MongoDB - ograniczenia indeksowania

W tym rozdziale dowiemy się o ograniczeniach indeksowania i innych jego składnikach.

Dodatkowe obciążenie

Każdy indeks zajmuje trochę miejsca, a także powoduje obciążenie przy każdym wstawianiu, aktualizowaniu i usuwaniu. Jeśli więc rzadko używasz swojej kolekcji do operacji odczytu, nie ma sensu używać indeksów.

Wykorzystanie pamięci RAM

Ponieważ indeksy są przechowywane w pamięci RAM, należy upewnić się, że całkowity rozmiar indeksu nie przekracza limitu pamięci RAM. Jeśli całkowity rozmiar zwiększy rozmiar pamięci RAM, rozpocznie się usuwanie niektórych indeksów, powodując utratę wydajności.

Ograniczenia zapytań

Indeksowania nie można używać w zapytaniach, które używają -

  • Wyrażenia regularne lub operatory negacji, takie jak $ nin, $ not itd.
  • Operatory arytmetyczne, takie jak $ mod itp.
  • klauzula $ where

Dlatego zawsze zaleca się sprawdzenie użycia indeksu w zapytaniach.

Ograniczenia klucza indeksu

Począwszy od wersji 2.6, MongoDB nie utworzy indeksu, jeśli wartość istniejącego pola indeksu przekracza limit klucza indeksu.

Wstawianie dokumentów przekraczających limit klucza indeksu

MongoDB nie wstawi żadnego dokumentu do indeksowanej kolekcji, jeśli wartość indeksowanego pola tego dokumentu przekracza limit klucza indeksu. To samo dotyczy narzędzi mongorestore i mongoimport.

Maksymalne zasięgi

  • Kolekcja nie może mieć więcej niż 64 indeksy.
  • Długość nazwy indeksu nie może przekraczać 125 znaków.
  • Indeks złożony może mieć maksymalnie 31 indeksowanych pól.