0

我有 2 个查询,结果与以下相同:

Query 1: {
    $or: [
        {
            field_1: "A",
        },
        {
            field_2: "B",
        },
    ],
    field_3: "C",
},

Query 2: {
    $or: [
        {
            field_1: "A",
            field_3: "C",
        },
        {
            field_2: "B",
            field_3: "C",
        },
    ],
}

我有 2 个复合索引:field_3_field_1field_3_field_2.

解释这两个查询的查询执行表明:

  • totalKeysExamined查询 1 运行速度更快(3 次),搜索次数等于 1,并且更高totalDocsExamined(这两个相同)并使用了上述索引中的 1 个。
  • 查询 2 运行速度较慢,搜索次数 (32) 高得多,而 和 低得多totalKeysExaminedtotalDocsExamined两个索引都被使用。

谁能解释这种行为以及推荐的查询方法是什么?谢谢。

4

0 回答 0