インデックス作成は予測に役立ちますか?
それが本当に役立つのは(パフォーマンスなどによって定義される)唯一の場合は、クエリが「カバー」されている場合だと思います:http://docs.mongodb.org/manual/tutorial/create-indexes-to-support-queries/
たとえば、 をクエリし{d:1, e:2}
て get backしたい場合{_id, t, e}
は、次のようにします。
db.t.ensureIndex({d:1 , e:1, _id:1, t:1});
db.t.find({d:1, e:2}, {_id:1, t:1, e:1});
そして、そのクエリのexplain()
出力はindexOnly
true として表示され、ディスクからドキュメントをロードして応答を返さなかったことを意味します。
そうです、インデックスは特定の状況下での予測に役立ちます。
コレクションに多数のインデックスを割り当て、並べ替えで検索を実行しようとした後、説明を使用すると、並べ替えられたフィールドに BtreeCursor インデックスが表示されます。
はい、そうです。
他のインデックスがクエリ部分で役立ち、検索に役立った最後のインデックスのみが表示されているため、説明が表示されなかった可能性がありますか?
インデックスの交差の被害者である場合は、 を使用して、使用explain(true)
されたすべてのインデックス プランを表示します。
交差を伴う検索と並べ替えには個別のインデックスが使用されないことに注意してください。したがって、ここでの答えは実際には「いいえ」です。 -選別