5
我有一个MongoDB查询,我试图优化。我创建了一个与查询中的字段相匹配的索引,但我似乎无法让MongoDB的查询计划器在没有明确的hint()
的情况下使用索引,即使nscanned
和milli
对于提示版本更好。为什么MongoDB不使用正确的索引?
这里有索引,查询(有和没有提示),以及一个详细的解释:
http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt
信息的一个额外位:该指数是在一个大十岁上下的征收,一个副本集,所以我使用offline method构建索引。它现在存在于所有节点中。
(最初张贴上MongoDB-User。)
如果您创建索引:'owner_1_date_-1_from_backup_1',该怎么办? – Sammaye 2013-04-23 19:49:02
我的索引是对的。我正在排列'日期'。 (并且'hint()'确认它更好。)它还需要花费一个多小时才能将这个集合索引到我们的生产数据集中,所以我不愿意仅仅尝试没有很好理由的事情。 ( - : – scoates 2013-04-23 19:59:37
这个链接可能解释你为什么得到'scanAndOrder' http://blog.mongolab.com/2012/06/cardinal-ins/它也可以解释为什么MongoDb没有看到你创建的索引为最佳 – Sammaye 2013-04-23 20:03:31