私はmongodbでクエリを最適化しようとしています。mongodbでのクエリの最適化
通常のSQLクエリでは、where句が適用される順序があります。例えば、 select * from employees where department="dept1" and floor=2 and sex="male"
、ここでは最初にdepartment="dept1"
が適用され、次にfloor=2
が適用され、最後にsex="male"
が適用されます。
私はそれがmongodbで同様のやり方で起こっているのだろうと思っていました。 など。 DbObject search = new BasicDbObject("department", "dept1").put("floor",2).put("sex", "male");
ここで一致句が最初に適用されるか、infactはmongoがこのようにして動作します。
この質問は、基本的に私のSQLデータベースの背景から発生します。
助けてください。
'db.employees.createIndex({" department ":" floor ":1、" sex ":1})'のような複合インデックスは 'のフィールドのサブセットでクエリしています。 "{" department ":" dept "1、" floor ":2}'または '{" floor ":2}のようなインデックス –
私の回答の参照を確認してスクロールダウンhttps://docs.mongodb.org/ manual/core/index-compound /#プレフィックス。あなたのケースでは、索引{"department":1、 "floor":1、 "sex":1}は、(1)dep、(2)dep/floor、(3)dep/floor /性別すぐに床で検索したい場合は、別のインデックスを作成する必要があります – zeugor
さらにもう1つ - インデックスがないと仮定し、一致句が最初に適用されます。そのための規則はありますか? –