MongoDB在多个字段上编制索引

时间:2013-03-02 18:29:22

标签: mongodb indexing mongodb-indexes

我已经阅读了关于MongoDB行动手册中索引的章节,并且想知道是否有人可以扩展它关于索引的内容。

如果我有一个涵盖a,b,c,d,e的索引,并且我在a,b,c上查询,则使用索引。如果我在a,c,e查询,会发生什么?索引是仅用于a上的查询还是在查询其他字段时使用?

在这种情况下,在a,c,e上建立索引更有意义。我问,因为我有一个前端部分链接到这些字段,用户可以创建一个自由格式查询(a,b,c,f可以是一个)。我是否需要一个可能出现的所有可能选项的索引?

1 个答案:

答案 0 :(得分:3)

MongoDB中的复合索引通过前缀方法工作。

因此,对于a,b,c,d,e aa,b的索引,将被视为前缀(http://docs.mongodb.org/manual/core/indexes/#id5),因此查询a,b,c和{{1}应该产生索引用法;关于a,c,e是否完全使用索引是完全另一个问题。

  

我问,因为我有一个前端部分链接到这些字段,用户可以创建一个自由格式查询(a,b,c,f可以是一个)。我是否需要一个可能出现的所有可能选项的索引?

如果a,c,e始终是第一个字段定义,那么可能不是(a在数据集上当然会更好),否则你可能需要一些组合,是的。