开发者社区> 问答> 正文

MongoDB客户端Java的查询问题

做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
会不会是服务器内存小了?但在控制台执行查询效果却很好,疑惑!!!

展开
收起
落地花开啦 2016-02-05 15:52:30 2677 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    很大可能还是因为Mongo索引没加,加上对应的索引,千万级的数据都在毫秒级的相应时间
    我用的pymongo驱动,python环境

    2019-07-17 18:37:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载