正文
有时候,业务需要导出一个月的数据,但是,一个月的数据可能会有几十万条记录,那么,只请求一次接口,然后导出的操作显然是不行的。
解决办法
1、前端点击导出后,将查询条件进行拆分,例如导出一个月,那么,就将时间分成6段,例如,3月1日至3月5日,3月6日至3月10日,等等类推。
2、时间切割了,那么,也要请求6次接口,但是用户感知是只点击了一次:导出按钮
3、重要:前端将6次接口返回的数据,合成一个excel表格
重点
1、数据没法压缩
2、检查查询的SQL是否高效
结语
其实,这个办法和后端关系不大,基本是需要前端对返回的输出流做处理,因为合并数据的操作是前端完成的。那么当数据合并完成后,会生成一个至少100M+的excel表格。