做MongoDB的时候发现一个问题,查询速度比较慢。客户端是用java测试的,官方下载驱动和2.3和2.4都试过,主要代码如下:
`cur = dbc.find(query).limit(limit);//代码1
while(cur.hasNext()) {//代码2
……
}
`
发现代码1执行很快,代码2占用很多时间,返回100条数据经常要10秒以上,数据量大的更久。同一个查询第二次以后又会很快,这应该是数据库把活跃的数据放在内存的原因。但是我在控制台(启动mongo)上执行查询却很快返回结果,没有出现过等待很久的情况。不知道大家有没有遇到类似情况,有没有好的优化方法?
我的服务器配置
CPU 4核 2.33G * 2
内存:2G
硬盘:15000RPM 300G
操作系统:Fedora 14 64位
MongDB中数据大约4KW条,数据文件20G,索引文件3G
会不会是服务器内存小了?但在控制台执行查询效果却很好,疑惑!!!
很大可能还是因为Mongo索引没加,加上对应的索引,千万级的数据都在毫秒级的相应时间
我用的pymongo驱动,python环境
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。