根据我的研究,jdbctemplate 或者其他框架比如 mybatis 等,都不适合实现 大批量(上千万)的查询和导出。虽然 sql可以优化,数据库本身的执行速度可以很快,但是当上千万条的数据导出到 java 的对象时,会直接导致java的 OOM。

这是因为,框架对 jdbc原生的 resultset 做了封装,只能一次性的将千万条结果 转换成 千万个 java对象。频繁的创建对象不仅是查询耗时的真正原因,而且都是不可回收的对象,自然也会OOM。

解决方法是 :

1) 设置 fetchsize 在 100~500之间(oracle默认是10),有效减少数据库服务端与客户端的交互次数。

2) 使用原生jdbc,手写 while(resultSet.next()){StringBuilder.append(",")方式拼接结果},及时的将对象保存成 服务器上的 文本文件.txt | 文本文件.csv,最后 使用 IO流 返回。如此可大大提高响应速度,也绝对不会OOM。

========================

著名的Oracle 导出千万数据的开源工具 《sqluldr2》就是利用这个原理。我们完全可以不用这个工具,实现同等效果。2分钟导出 千万条数据不是梦。

python处理大数据越来越慢_请问使用JdbcTemplate读取大数据很慢如何优化?(十几万数据)...相关推荐

  1. python 3d大数据可视化软件_最受欢迎的大数据可视化软件

    最受欢迎的大数据可视化软件 发布时间:2020-05-26 想像阅读书本一样阅读数据流?这只有在电影中才有可能发生. 在现实世界中,企业必须使用数据可视化工具来读取原始数据的趋势和模式. 大数据可视化 ...

  2. 交通大数据应用细分_盈海科技 | 交通大数据可视化“掘金”数据价值

    面对日益拥堵的交通状况 智能交通布局虽在不断完善 但交通管理依旧收效甚微 问题究竟出在了哪里? 数据独立存储难以融合应用 数据内在规律难寻 数据可视化程度低 -- 问题繁多 困难重重 怎么办??? 交 ...

  3. python的逆袭之路_菜鸟逆袭之路:从月薪8千到2万,勇敢的去做改变才会成功

    最近,一位在上班时间努力工作,利用下班时间自学python,逐渐改变自己工作状态,薪资翻倍的的职场小张给我发来了下面这样的内容.Python对于很多程序员来说只是很一门基础的语言,但是却逐渐在非IT行 ...

  4. 结构化数据和非结构化数据的区别_中国天辰携手爱数AnyShare,共同探索非结构化数据治理...

    近日,天辰公司智能数据中台-内容管理平台项目上线会圆满举行.基于爱数 AnyShare Family搭建的天辰内容管理平台,将帮助天辰统一管理并处理.分析非结构化数据,让数据赋能业务,进行数字资产管理 ...

  5. 阿尔法大蛋智能机器人功能_科大讯飞机器阿尔法蛋大蛋2.0怎么样?儿童智能机器人阿尔法蛋大蛋2.0和1.0区别对比!...

    阿尔法蛋大蛋2.0和1.0区别还是蛮大的,这款科大讯飞机器人 阿尔法蛋大蛋2.0儿童智能机器人学习机很不错的,功能多,学习内容也多!阿尔法蛋大蛋2.0,桌面型AI学习机器人,圆润简约的科技感设计机身, ...

  6. java 按行读取大文件文件内容_Java实现按行读取大文件

    Java实现按行读取大文件 String file = "F:" + File.separator + "a.txt"; FileInputStream fis ...

  7. 用python编写一个点餐程序_急急急!求大神帮忙做个Python在线点餐小软件

    匿名用户 1级 2014-10-26 回答 User={} List=open("USER.txt","r") for _list in List: _List ...

  8. python修改悦跑圈数据_悦跑圈数据导出 悦跑圈新版本支持跑表、跑步机数据接入 - 电脑常识 - 服务器之家...

    悦跑圈数据导出 悦跑圈新版本支持跑表.跑步机数据接入 发布时间:2017-05-07 来源:服务器之家 11月11日,跑步软件悦跑圈在Appstore上线了新版本iOS1.5.4/Android 1. ...

  9. 苏宁大数据怎么运营_数据驱动经营 苏宁大数据用户标签入选2019TOP100全球软件案例...

    11月14日-17日,2019TOP100全球软件案例研究峰会(TOP100summit)在北京国家会议中心举办,此次会议以"数字化转型与指数组织创新战略"为主题,吸引了数百位科技 ...

最新文章

  1. 让Windows7运行速度更快的BIOS优化设置教程
  2. 后BERT时代:15个预训练模型对比分析与关键点探索(附链接)
  3. android 自定义view 动画效果,Android自定义view----音乐播放动画
  4. Spring Boot 打成war包部署到tomcat8.5.20报无法访问
  5. 冰雪奇缘,白色世界:四个IT人的四姑娘山双桥沟游记
  6. 使用eclipse开发web需要搭建什么环境
  7. 为什么选择使用 OKR 进行项目过程管理
  8. Axure RP7.0学习记录
  9. Unicode中的数学符号
  10. 【转载】网站域名备案相关流程介绍
  11. 编译安装httpd服务
  12. geany设置运行linux,Linux强大IDE——Geany配置说明
  13. 「分布式专题」分布式事务 就这?太简单了吧
  14. 利用决策树对微信公众号文本进行分类
  15. Efficient Estimation of Word Representations in Vector Space
  16. java, c 亦或用法
  17. My97 DatePicker切换日期类型
  18. 以 回车键 为结束标志的输入
  19. React Native带你一步步实现热更新(CodePush-Android)
  20. 容器云平台使用体验:DaoCloud

热门文章

  1. web可用性测试_Web开发人员和设计人员的最佳可用性测试工具
  2. 西河某人_如何使用增强现实祝某人生日快乐
  3. soap rest_这是我对REST的后续工作,是新的SOAP:让我们谈谈原始REST
  4. Django复习:模型与管理网站
  5. Python基础入门知识点——Python中的异常
  6. Python3十大经典错误及解决办法
  7. Limit与skip
  8. HBase 架构详解
  9. SQL Server2008创建约束图解 唯一性约束
  10. Python:数据类型