Mongo组查询不使用索引或减慢查询

时间:2011-08-18 12:00:45

标签: mongodb

我使用过mongodb 1.8.1。我收集的内容包含超过180万条记录。在此集合中,所有记录都是简单对象,而不是嵌套对象或数组

如下所示

{ name : "xyz" , "id" : 123 ,"a" : "na" , "c" : "in" , "cmp" : "pq" , "ttl" : "sd"}

所有记录都是这样的。

在这个集合中,有时会触发更多5个查询,其中2个是包含在其中的简单查询,另一个是使用索引的简单查询。

另外两个是组查询,其中条件字段在索引中,一个包含存在。

另一个具有适当条件的1个不同查询,也是索引。

查询消息的顺序是第一个qroup查询然后是1个简单查询然后是不同查询和最后一个简单查询。

因此数据加载缓慢。

如果这样的2 -3调用make,则它的加载非常低,有时会给出错误读取超时。

这些集合有超过1个索引。

1 个答案:

答案 0 :(得分:1)

$ exists查询不使用索引(从1.9.1开始修复)

组命令使用mongodb的JS上下文,它在使用时被独占锁定。这将影响并发组查询的性能。正在开发一个新的聚合框架,应该有助于实现这一点(2.1以后)。监控https://jira.mongodb.org/browse/SERVER-447以获取进度。根据我的经验,像聚合应用程序那样做“组”通常更有效率。