mongoDB 查询效率,等待读锁的时间差异

使用mongodb做了一个项目,现在需要从项目里导出数据,第一批数据导出的时候相对比较快,第二批数据导出时突然死慢死慢。
根据profile里的信息,同样的联合查询($in的集合不一样,但是大小差不多),也是加了索引的。前后两个查询要相差3倍的时间。

分析查询信息,时间基本都耗在了等待读锁上,图片说明
做了以下设想:
1.通常的,如果是索引过多,那么前后的时间耗损差异,说不通(都是遍历整库查询)。

2.把程序里的语句拷贝出来,本机测试,结果:
图片说明
可以看出,除了第一次查询比较慢,后面的查询就正常了。原因就是索引已经在内存里了(项目里查询比较复杂,索引可能被“挤出”内存),依然是等待读锁占去了绝大部分时间。所以这里是否可以判断,锁的时间包括了内存读取索引的时间??

现在,关于等待读锁时间过长,除去索引方面的影响,是否还有其他因素的干扰?

各位技术君,给点指点,讨论讨论,不管正确与否。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐