参考:https://www.zhihu.com/tardis/bd/art/533753443?source_id=1001 Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]
结果测试:104万数据,导出excel用时由59秒优化到19秒
问题列表:
1、导出过程中会较多占用CPU、内存、磁盘,需全局对Excel导出限流,防止同时对大量数据进行导出,导致内存、磁盘、CPU使用率过高等问题。
2、导出时直接向HttpServletResponse写入的方式,在数据量比较大,耗时较久的情况下,用户体验并不是很好且容易超时,可考虑做导出下载中心功能(优势:限流、导出历史记录、进度条、可中断任务等)。
3、分页查询如果使用了非唯一字段排序,可能会出现数据重复的问题:MySQL查询时,ORDER BY 后面根据时间(TIMESTAMP)排序并做翻页(LIMIT)处理经常出现顺序紊乱和导致前后页的数据重复问题调查及解决。