我有 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_1
和field_3_field_2
.
解释这两个查询的查询执行表明:
totalKeysExamined
查询 1 运行速度更快(3 次),搜索次数等于 1,并且更高totalDocsExamined
(这两个相同)并使用了上述索引中的 1 个。- 查询 2 运行速度较慢,搜索次数 (32) 高得多,而 和 低得多
totalKeysExamined
,totalDocsExamined
两个索引都被使用。
谁能解释这种行为以及推荐的查询方法是什么?谢谢。