sql >> Databáze >  >> NoSQL >> MongoDB

V MongoDB, pokud je index na 3 polích, můžeme tento index použít při dotazu na 2 pole? (zástupný znak ve 3. poli)

Jsou to indexy B-stromu, takže je lze použít pro podmnožinu předpon příslušných sloupců. Pokud nemáte úvodní sloupce, skenování rozsahu indexu (operace, pro kterou se primárně používá index B-stromu) již není možné. Mohou existovat i jiné způsoby, jak index nadále používat (Oracle má například rychlé úplné skenování a skenování přeskakovat), ale obvykle se index nepoužije.

Tato úvaha platí pro vše, co používá indexy B-stromu, ať už relační DB nebo ne.

Opět to nezávisí na typu sloupce, ale na pořadí sloupců v indexu. Musíte mít úvodní sloupce (ve vašem případě potřebujete page_type). Pokud máte mnoho dotazů bez page_type, zvažte opětovné vytvoření indexu s typem stránky jako posledním sloupcem (což samozřejmě může mít také negativní dopad na jiné dotazy). Obecně musíte vědět, jaké druhy dotazů budete spouštět, než budete moci navrhnout indexy.




  1. Zvýšení výkonu při používání UUID namísto jeho řetězcové reprezentace jako _id na MongoDB?

  2. Připojení k MongoDB v Azure s Javou

  3. Nelze správně nainstalovat mongodb na ubuntu 18.04 LTS

  4. Školení se nezdařilo – strojové učení AWS