MyBatis 查询超过3万条数据就卡死,无返回,无程序报错。

tiguoliang 2017-10-20 03:48:29
List<AuditDetail> result = new ArrayList<AuditDetail>();
Map<String, Object> map1 = new HashMap<String, Object>();
//设置查询条件
map1.put("platform", platform);
map1.put("batchId", batchId);
map1.put("compareCode", compareCode);
map1.put("compareReasonCode", compareReasonCode);
map1.put("curPage", 1);
map1.put("pageSize", "100000");
result = null;
//调用mybatis的mapper进行查询
result = auditDetailConfig.queryAuditDetail(map1);
System.out.println("查询完毕======"+result.size());

数据库一共有7万多条数据,准备查询出来写入excel,一查询就没有返回了,控制台日志输出一会就停住了。然后就没有然后了。
后来我想可能是查的太多了,就分几次查询,每次查询10000条记录,查到第4次的时候,还是停住无任何返回,挂死了。3万条以内的数据,可以正常查出并且写入excel,超过3万条就这样了。

以下是mybatis的一些设置
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="aggressiveLazyLoading" value="false" />
<setting name="lazyLoadTriggerMethods" value="false" />
</settings>

一开始以为是tomcat内存不够,现在我把tomcat的内存放到2G,依然不行。请大神给我看看是啥原因
...全文
2636 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiguoliang 2018-03-05
  • 打赏
  • 举报
回复
后来找到原因了,是有个地方内存溢出导致的。
qq_35243821 2017-10-24
  • 打赏
  • 举报
回复
可以导成csv,占用空间少,cvs可以直接excel打开。 你excel导出可能导出后没有关闭流,要关闭流,重新new一个
zk_Kang 2017-10-24
  • 打赏
  • 举报
回复
查查是不是使用mybatis哪里限制数量了。或者在导出的excel的时候,哪里限制了数量?再不然就是程序再优化下,看看哪里内存溢出了。。
depositpei 2017-10-22
  • 打赏
  • 举报
回复
改成每次查询3万且写入一次exclel看看
nature020110 2017-10-21
  • 打赏
  • 举报
回复
一次性导出能导也很慢的
清晨v 2017-10-21
  • 打赏
  • 举报
回复
大数据量通过多线程来跑比较好,你这样一次性导出能导也很慢的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧