MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Problem z wydajnością MongoDB:pojedyncza duża kolekcja a wiele małych kolekcji

Oddzielenie kolekcji daje Ci darmowy indeks bez żadnych dodatkowych kosztów. Skanowanie indeksu wiąże się z dodatkowymi kosztami, zwłaszcza jeśli indeks tak naprawdę nie pomaga zmniejszyć liczby wyników, które musi przeskanować (jeśli w indeksie znajduje się milion wyników, ale musisz je zeskanować i sprawdzić, niewiele ci to pomoże).

Krótko mówiąc, oddzielenie ich jest poprawną optymalizacją, ale powinieneś poprawić indeksy dla swoich zapytań, zanim faktycznie zdecydujesz się obrać tę trasę, co uważam za drastyczny środek (indeks ceny produktu może ci bardziej pomóc w tym przypadku) .

Korzystanie z explain() może pomóc w zrozumieniu działania zapytań. Oto kilka podstawowych informacji:Potrzebny jest niski stosunek nsskanowanych do n, najlepiej. Nie chcesz scanAndOrder =true i zwykle nie chcesz BasicCursor (oznacza to, że w ogóle nie używasz indeksu).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd wyboru serwera Docker i mongo-go-driver

  2. Jak zainstalować Mongodb na chipie Apple M1?

  3. Dokument osadzony a odniesienie w modelu projektowania mangusty?

  4. Zapytanie według typu tablicy — MongoDB

  5. LUB zapytanie pasujące nil lub z Mongoid nadal pasuje ?