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

MongoDB, výkon dotazu regulárním výrazem na indexovaných polích

Vlastně podle dokumentace,

Pokud pro pole existuje index, MongoDB porovná regulární výraz s hodnotami v indexu, což může být rychlejší než skenování kolekce. Další optimalizace může nastat, pokud je regulární výraz „výraz předpony“, což znamená, že všechny potenciální shody začínají stejným řetězcem. To umožňuje MongoDB vytvořit „rozsah“ z této předpony a porovnávat pouze s těmi hodnotami z indexu, které spadají do tohoto rozsahu.

http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use

Jinými slovy:

Pro /Jon Skeet/ regex ,mongo úplně naskenuje klíče v indexu a poté načte odpovídající dokumenty, což může být rychlejší než skenování sbírky.

Pro /^Jon Skeet/ regex ,mongo prohledá pouze rozsah, který začíná regulárním výrazem v indexu, což bude rychlejší.



  1. Jak třídit pole uvnitř záznamu kolekce v MongoDB?

  2. Max a min v mongodb

  3. Špatný výkon agregace vyhledávání

  4. problém s připojením mongo - rubín