sql >> データベース >  >> NoSQL >> MongoDB

Mongodb:$HINTのパフォーマンスへの影響

    作成した複合インデックスを指定してください。私はあまり評判が良くないので、コメントでこれを尋ねることはできませんでした。しかし、私はあなたの質問に答える可能性があります。Mongoは、異なる動作をする「Equality-Sort-Range」と呼ばれるプロパティを使用します。以下の状況を考慮してください-フィールドが{名前:文字列、ピン:6桁の番号、SSN:9桁の番号}のドキュメントがほとんどなく、{名前:1、ピン:1、ssn:1}と2番目のインデックスの2つのインデックスがあります{name:1、ssn:1、pin:1}は、以下のクエリを検討します:

    1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) 継続に複合インデックスがあるため、このクエリは最初のインデックスを使用します。名前、ピン、社会保障番号は継続中です。
    2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) このクエリでは、最初のインデックスが使用されることが期待されます。しかし、驚くべきことに、このクエリでは秒インデックスが使用されます。これは、ピンに対して範囲操作があるためです。

    Equality-sort-rangeプロパティは、クエリプランナーが「equality-sort-range」をより適切に提供するフィールドのインデックスを使用することを示しています。 2番目のクエリはピンに範囲があるため2番目のインデックスが使用され、最初のクエリはすべてのフィールドで同等であるため、最初のインデックスが使用されます。




    1. MongoDBでデータベースを削除する2つの方法

    2. 複数のフィールドによるグループコレクションデータmongodb

    3. 別々のnodeJSインスタンスでソケットを共有する

    4. mongodbで複合インデックスを構築する方法