当前时间: 2026-06-04 18:40:50
分类:办公文件
评论(0)
怎么实现百万数据的Excel导入导出?这是一个物流公司的面试题,说他们做物流快递项目,虽然项目不大,但是以后可能会有这种业务需求

1:分片从数据库取数据,limit关键字,你如果说直接从数据库捞100w数据导出,直接聊爆了,回去等通知吧
2:excel的读取工具,原来是阿帕奇官方的poi框架,但是这个框架有性能问题,10w+数据导出就比较吃力,所以大多公司普遍是采用阿里的easyexcel框架,但是easyexcel这个框架阿里目前已经不维护了,原作者开了另外一个框架fastexcel,目前被阿帕奇官方诏安了,所以在导出工具上可以说用poi分片导出、fastexcel全量导出3:导出过程中,需要回收数据集的引用,否则在内存不大的机器上,容易引起服务器GC
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-06-05 02:13:14 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/712012.html
- 运行时间 : 0.226482s [ 吞吐率:4.42req/s ] 内存消耗:4,861.74kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=0bbd133525bec34b1f30f877dbbf7ec7
- CONNECT:[ UseTime:0.000991s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001546s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000667s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000740s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.001293s ]
- SELECT * FROM `set` [ RunTime:0.000624s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.001453s ]
- SELECT * FROM `article` WHERE `id` = 712012 LIMIT 1 [ RunTime:0.000928s ]
- UPDATE `article` SET `lasttime` = 1780596794 WHERE `id` = 712012 [ RunTime:0.008109s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000679s ]
- SELECT * FROM `article` WHERE `id` < 712012 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001121s ]
- SELECT * FROM `article` WHERE `id` > 712012 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003786s ]
- SELECT * FROM `article` WHERE `id` < 712012 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005134s ]
- SELECT * FROM `article` WHERE `id` < 712012 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001643s ]
- SELECT * FROM `article` WHERE `id` < 712012 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001919s ]
0.230384s