多字段上的MongoDB索引
我已经阅读了MongoDB in action手册中关于索引的章节,我想知道是否有人可以详细介绍一下它关于索引的内容 如果我有一个包含多字段上的MongoDB索引,mongodb,indexing,mongodb-indexes,Mongodb,Indexing,Mongodb Indexes,我已经阅读了MongoDB in action手册中关于索引的章节,我想知道是否有人可以详细介绍一下它关于索引的内容 如果我有一个包含a、b、c、d、e的索引,并且我查询a、b、c,则使用该索引。如果我查询a、c、e,会发生什么?索引是仅用于查询a还是在查询其他字段时使用 在这种情况下,将索引也放在a、c、e上是否更有意义。我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要所有可能通过的选项的索引?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,e
a
和a,b
的索引将被视为前缀(),因为对a,b,c
和a,c,e
的查询都应产生索引用法;至于a,c,e
是否有效地使用索引,则完全是另一个问题
我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要一个索引,用于所有可能通过的选项
嗯,如果a
始终是第一个定义的字段,那么可能不是(在您的数据集上,解释当然会更好),否则您可能需要一些组合,是的。MongoDB中的复合索引通过前缀方法工作
因此,对于a,b,c,d,e
a
和a,b
的索引将被视为前缀(),因为对a,b,c
和a,c,e
的查询都应产生索引用法;至于a,c,e
是否有效地使用索引,则完全是另一个问题
我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要一个索引,用于所有可能通过的选项
嗯,如果a
始终是第一个定义的字段,那么可能不会(在您的数据集中,解释当然会更好),否则您可能需要一些组合,是的。啊,我忘了解释了。在添加a、b、c、d、e
索引之后,我会做一些测试,看看它是如何影响事情的。啊,我忘记了解释了。在添加a、b、c、d、e
索引后,我将进行一些测试,看看它是如何影响事情的。