欢迎光临散文网 会员登陆 & 注册

EasyExcel,轻松导出 100W 数据,不卡死,好用到爆!

2023-02-27 16:30 作者:要宠你上天  | 我要投稿


一、简介          

在实际工作中,一般都会涉及到导入导出的功能设计,本身实现不难,但是大数据量导出的时候,主要会面临两个问题:

1、导出的速度

2、内存占用过高导致的OOM的问题

       之前自己封装了一个导出的模块,经过逐步改进,性能还可以,但是新手接手使用不太方便。无意间查询到阿里开源的EasyExcel框架,发现可以将解析的EXCEL的内存占用控制在KB级别,并且绝对不会内存溢出,还有就是速度极快,大概100W条记录,十几个字段,只需要65秒即可完成下载。

二、使用案例

2.1、pom依赖

2.2、POJO对象

2.3、测试环境

2.3.1、少量数据测试

数据量 < 20W, 一个SHEET一次查询导出

2.3.2、数据量适中(100W以内):一个SHEET分批查询导出

2.3.3.数据量很大(几百万都行):多个SHEET分批查询导出

三、总结

       1、通过模拟的100W条记录,18个字段,测试导出是70s。在实际上产环境使用的时候,具体的还是要看自己写的sql的性能。sql性能快的话,会很快。

       2、查询数据库的时候,原则是:减少查询sql,会有效地提高速率。

       3、可优化地地方

        使用pagehelper的时候,数据量大的时候,limit 0,20W, limit 20W,40W, limit 40W,60W, limit 60W,80W 随着下标增大,查询速率也会变慢,这一点需要认真优化SQL,比如根据ID来确定范围


EasyExcel,轻松导出 100W 数据,不卡死,好用到爆!的评论 (共 条)

分享到微博请遵守国家法律