Java 大数据量导出

时间:2022-09-22 00:06:02
目前系统做得是一次最多导出1W条数据到excel,超过就卡死了,搜了很多方法都没解决,SQL也优化了,请问有没有可能一次导出5W的记录?而且速度上不会太慢的,求指点。

9 个解决方案

#1


不知道你的导出是怎么个导出情况,是通过 tomcat这种 中间件,还是直接的客户端程序访问数据库。
如果是前者,那么必然会牵扯到 内存溢出之类的,可以对 配置文件进行优化之类的!
如果是后者,应该很好解决吧!一般不会出现倒不出来的情况,卡或许是会有的!

你先把这个说明一下,还有就是记录的内容是不是纯文本的!还是有 大张图片!

#2


超过就卡死是什么意思,哪里的限制?
每条数据多大?
导出流程具体怎样的,存为本地文件还是需要网络传输?
一次5万条当然是可以的,速度方面不知怎样算可以接受的?

#3


试试 Spring Batch

#4


用什么来生成Excel的?也许要尝试更换操作Excel的组件。

另外,这么大量数据的导出,对内存开销也比较大,你给JVM配置了多大内存?

#5


导出的时候,你每次导出5千条。  分10次导出。

#6


用apache poi excel工具
Workbook excel = new SXSSFWorkbook(100);

#7


按逻辑用sql去库里查,查完之后直接粘出来!

#8


到成csv格式吧,要么分批导,要么把堆内存放大

#9


解决了,调大JVM内存 ,创建多个sheet,每个sheet放1W条数据

#1


不知道你的导出是怎么个导出情况,是通过 tomcat这种 中间件,还是直接的客户端程序访问数据库。
如果是前者,那么必然会牵扯到 内存溢出之类的,可以对 配置文件进行优化之类的!
如果是后者,应该很好解决吧!一般不会出现倒不出来的情况,卡或许是会有的!

你先把这个说明一下,还有就是记录的内容是不是纯文本的!还是有 大张图片!

#2


超过就卡死是什么意思,哪里的限制?
每条数据多大?
导出流程具体怎样的,存为本地文件还是需要网络传输?
一次5万条当然是可以的,速度方面不知怎样算可以接受的?

#3


试试 Spring Batch

#4


用什么来生成Excel的?也许要尝试更换操作Excel的组件。

另外,这么大量数据的导出,对内存开销也比较大,你给JVM配置了多大内存?

#5


导出的时候,你每次导出5千条。  分10次导出。

#6


用apache poi excel工具
Workbook excel = new SXSSFWorkbook(100);

#7


按逻辑用sql去库里查,查完之后直接粘出来!

#8


到成csv格式吧,要么分批导,要么把堆内存放大

#9


解决了,调大JVM内存 ,创建多个sheet,每个sheet放1W条数据