MongoDB性能-与带有索引的两个字段的查询不同

时间:2018-09-24 14:25:10

标签: mongodb performance mongodb-query

我们有一个包含两个字段(A和B)的集合,它们都有一个索引。

使它们之间的区别非常快。但是实际的查询在A中与其他字段B中的过滤器不同。

db.getCollection('Collection').distinct( "A" , { "B" : "b1" }  )

这确实非常慢,因为它正在扫描集合(不幸的是b1的过滤率不超过50%)。有没有办法使MongoDB更快呢?

2 个答案:

答案 0 :(得分:1)

根据此JIRA ticket,您可以做的就是创建一个这样的复合索引:

db.collection.createIndex({ "B": 1, "A:" 1 })

答案 1 :(得分:0)

我建议您使用复合索引来解决此问题。由于优先级在compound index中基于您的查询非常重要,因此建议您使用此索引{A:1,B:1}