MongoDB在多个字段上的索引

问题描述:

我读过MongoDB中操作手册中的索引一章,并想知道是否有人可以扩展关于索引的内容。MongoDB在多个字段上的索引

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

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

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

所以对于a,b,c,d,eaa,b将被视为前缀(http://docs.mongodb.org/manual/core/indexes/#id5)在两个a,b,ca,c,e索引,因为这样的查询应该产生一个索引的使用;至于a,c,e是否表现完全是另一个问题。

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

嗯,如果a总是定义,那么可能不是(一explain当然会更好这里对您的数据集)第一场,否则,你可能需要一些组合,是的。

+0

啊,我忘记了解释。在添加'a,b,c,d,e'索引后,我会做一些测试,看看它是如何影响事物的。 – 2013-03-02 18:55:57