MongoDB重叠索引,浪费空间与否?

时间:2017-10-26 23:41:06

标签: mongodb indexing

我正在做这样的询问:

.find({name: "bob", gender: "male"})
.find({name: "alice"})

我创建了2个索引,一个用{"name": 1},另一个用{"name": 1, "gender": 1}

创建2个索引在这里有意义吗?这样做是否浪费空间?例如,我可以摆脱名称索引吗?

1 个答案:

答案 0 :(得分:0)

是的,这是浪费内存,您所需要的只是'name'和'gender'的复合索引。

db.table.createIndex( { "name": 1, "gender": 1 } )

这允许您同时使用两个选项。您可以只查询名称,也可以查询与项目组合的类别。多个字段上的单个复合索引可以支持所有搜索这些字段的“前缀”子集的查询。

ref:https://docs.mongodb.com/manual/tutorial/create-indexes-to-support-queries/#create-compound-indexes-to-support-several-different-queries