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

MongoDB řazení je extrémně pomalé i na indexovaných polích

Měli byste spustit explain na základě vašeho dotazu vám pomůže zjistit, co se děje.

Je pravděpodobné, že Mongo nepoužívá index pro filtrování i řazení. Když použijete $or , může použít více indexů, aby odpovídaly možnostem. Ale když přidáte sort může to způsobit, že nebude používat indexy dostupné pro filtrování.

Když chcete seřadit podle dotazu, musíte se ujistit, že seřazené pole je v indexu, do kterého chcete zasáhnout (poslední, nebo jej nelze použít k řazení).

Můžete to také urychlit předáním indexové nápovědy. Nevím, kolik dokumentů odpovídá vašemu dotazu, ale pokud je to malý počet a ujistíte se, že počáteční podmínky narážejí na index, řazení podle _id lze provést rychle.




  1. Jak používat SCAN s možností MATCH v Predis

  2. Anotace MockBean v testu Spring Boot způsobuje výjimku NoUniqueBeanDefinitionException

  3. Proč můj dotaz MongoDB $or nefunguje?

  4. Zrychlete agregaci MongoDB