2012-03-09 63 views
2

我希望获得尽可能快的字段ch的所有不同可能值的数目(包含在条目字段c中的子文档的字段h (p:1,r:1,“ch”:1})。我应该在mongodb中为这个不同的命令使用哪个索引

它是正确的吗?将不同的使用它正确吗?

我使用蒙戈2.0.1

编辑:我在jira ticket,你可以得到的查询统计发现。但它只适用于副本集(而不是从分片中的mongos运行)。该查询似乎用于正确使用{p:1,“c.h”:1}上的索引,因此我将尝试使用完整索引。

编辑2:完整的索引效果更好,如预期。

回答

1

如果explain()在您的分离环境中不能正常工作,那么您可以采用“强力”方法。使用提示()来显式地指定要测试,然后指数比较结果:

http://www.mongodb.org/display/DOCS/Optimization#Optimization-Hint

除了消除怀疑使用的索引,这也意味着,你是不是在等待优化器尝试出一个新的查询计划(它会缓存查询的第一个选定索引一段时间)。

当然,你的分片键会产生很大的影响,而基于该键的数据分布可能最终成为你的限制因素(数据局部性在分散/聚集方法中获胜)。

相关问题