複合インデックス があるとします{ a: 1, b: 1 }。
クエリdb.Collection.find( { b: 1 } )はこのインデックスを使用しません。クエリ オプティマイザーは、このインデックスを実行候補として選択していないようです。
ただし、具体的hintにインデックスを指定すると、クエリははるかに高速に実行され、nscanはるかに低くなります。
db.Collection.find( { b: 1 } ).hint( { a: 1, b: 1 } )
私の質問は、インデックスを使用するとクエリが高速になる場合、クエリオプティマイザーがクエリのインデックスを単独で無視するのはなぜですか?b