【发布时间】:2013-07-09 14:03:40
【问题描述】:
我有一个用于餐馆的 mongo db 集合。 例如 {_id:uniquemongoid, 排名:3, 城市:“柏林” }
餐厅按城市列出并按等级(整数)排序 - 我应该创建城市和等级索引,还是城市/等级复合索引? (我按城市查询,按排名排序)
此外,还有几个带有布尔值的字段,例如{ hasParking:true, familyFriendly:true } - 我应该创建索引来加快对这些过滤器的查询吗?复合索引?我不清楚是否应该创建复合索引,因为查询只能有一个布尔集或多个布尔集。
【问题讨论】:
-
这完全取决于您拥有多少数据以及您的查询是什么。
-
请注意,您可以使用
explain()method of cursor 来检查用于完成查询的索引。因此,当您不确定给定索引是否有助于特定查询时,您可以尝试并检查。 -
我的同事就此发表了演讲:youtube.com/watch?v=AVNjqgf7zNw 他以 mysql 为例,但原理相同。也许它会帮助您设计索引。
标签: performance mongodb indexing