考虑以下场景:
100% 的时间我的查询将在查询中包含a,有时也包含b。
90% 的查询将是:
{a:"somevalue"}
10% 将是
{a:"somevalue",b:"somevalue"}
仅使用复合索引(如果有的话)来满足这一点会有什么缺点?,就像这样:
{
"v" : 1,
"key" : {
"a" : 1,
"b" : 1
},
"name" : "a_1_b_1",
"ns" : "foo.bar"
}
或者我是否会受益于添加仅满足查询的第二个索引
{
"v" : 1,
"key" : {
"a" : 1,
"b" : 1
},
"name" : "a_1_b_1",
"ns" : "foo.bar"
},
{
"v" : 1,
"key" : {
"a" : 1
},
"name" : "a_1",
"ns" : "foo.bar"
}