scanAndOrder: true
ve výstupu Explain označuje, že dotaz musí načíst dokumenty a poté je seřadit v paměti, než se vrátí výstup. Toto je nákladná operace a bude mít dopad na výkon vašeho dotazu.
Existence scanAndOrder: true
stejně jako rozdíl v nscanned
n
ve výstupu Explain označuje, že dotaz nepoužívá optimální index. V tomto případě se zdá, že je třeba provést skenování sbírky. Tento problém můžete vyřešit zahrnutím indexových klíčů do sort
kritéria. Z mého testování:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
Nevyžaduje skenování a objednávání a vrací n
a nscanned
počtu záznamů, které hledáte. To by také znamenalo řazení podle hashtags
klíč, který pro vás může nebo nemusí být užitečný, ale měl by zvýšit výkon dotazu.