.explain()
の出力をMongoDBクエリで使用すると、n
とnscanned
の違いを見て、フルコレクションスキャンが実行されたかどうかを判断できます。または索引が使用されている場合。 The docs状態MongoDBでフルコレクションスキャンが行われたかどうかを判断する方法
あなたが
n
とnscanned
はできるだけ値の近いものにしたいです。
Kyle Banker's excellent book MongoDB in Actionは非常に似たような言葉:
は、一般的に言えば、あなたは
n
とnscanned
の値はできるだけ一緒に近いことにしたいです。コレクションスキャンを実行する場合、これはほとんどありません。
これらのステートメントのどちらも明らかに、n
とnscanned
を比較することはありません。差異に占める割合は、通常、フルコレクションスキャン(10%、20%、30%+)を推測していますか?フルコレクションのスキャンが完了したかどうかを確認する他の方法はありますか?
からの結果をマージするための
-SHARD_MERGEを文書を取得するためしかし、それは可能クエリがインデックスを使用するためのものであり、まだ完全なコレクションスキャンを実行しますか? – br3w5
@ssbrewsterそうではありませんが、索引の実行には別のことが必要です。索引を使用し、正しい方法でインデックスを使用することは別の2つの方法です – Sammaye
これはインデックスが結果をソートするためにのみ使用されますか? – br3w5