[英]mongodb compound index and single index performance
請考慮以下情形:
我的查詢有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"
}
手冊上有這句話;
如果您有一個在{a:1,b:1}上具有復合索引的集合,並且包含由該索引的前綴(即{a:1})組成的索引(假設索引中沒有稀疏索引)或唯一約束,則可以刪除{a:1}索引。
MongoDB在所有可能使用{a:1}索引的情況下都可以使用復合索引。
換句話說,由於MongoDB不必在內存中緩存兩個索引或在每次插入時更新兩個單獨的索引,因此使用單個索引很可能會獲得相同或更好的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.