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

Regulární výraz MongoDB s indexovaným polem

Důvodem rozdílu ve výkonu je pravděpodobně to, že s povoleným indexem musí váš dotaz projít indexem (načíst do paměti) a poté načíst odpovídající dokumenty, které mají být také vráceny do paměti. Protože nepoužíváte dotaz na předponu, všechny hodnoty v indexu budou naskenovány a otestovány proti regulárnímu výrazu. Není příliš efektivní.

Když odstraníte index, pouze prohledáváte tabulku a odpovídáte tamnímu regulárnímu výrazu - v podstatě jste věci z prvního trochu zjednodušili.

Indexovanou verzi byste možná mohli zrychlit, pokud by šlo o pokrytý indexový dotaz , bylo by také pravděpodobně rychlejší, pokud by se jednalo o složený index a vy byste jej potřebovali zkombinovat s kritérii pro jiné pole.

Když použijete dotaz na předponu, neznamená to, že pak používá pouze index, ale že index používáte efektivně, což je klíčové, a proto vidíte skutečné zvýšení výkonu.




  1. Omezte počet návratů polí z mongodb v Meteoru

  2. Aktualizace reference spolu s dalšími hodnotami Mongoose

  3. gke nemůže zakázat transparentní obrovské stránky... povolení odepřeno

  4. Jak zajistit, aby dotaz LIKE fungoval v MongoDB?