Laravel 利用 maatwebsite/Excel 如何实现超大量数据导出?
项目需求:将用户产生的数据以Excel的形式导出,本来是没什么问题的,但是时间一长数据大量增加,系统就会报超时,超可导出文件大小,不想通过设置php.ini 以及nginx配置来解决,因为这只是治标不治本;目前我的解决方案是分页导出(每页5000条数据)虽然解决了文件大小的限制,可是超时报错并没有解决;
这问题耽误我都三天了。。。真是醉了,求各位大哥有什么好的解决方案啊
关于 LearnKu
用队列来导出,导出完成之后发邮件或者其他手段通知你来下载
可以通过循环处理。
比如循环50000条数据,每次循环从数据库取1000条数据,处理完后输出到清空本地变量,然后进入下一轮循环,直到结束为止。
需要注意的是:
@qloog “一定不要在浏览器执行”? 什么意思? 在服务器上运行吗?
@leo 队列也想过,可能我没说明白 ,我想问的是可不可以秒导10w内的数据
@我真叫阳阳 看数据是怎么导出个方式,可以浏览器导出,也可以命令行导出,如果是给自己公司导数据那就命令行下就可以了。
@我真叫阳阳 可以,只要服务器够性能好就行
我们大数据导出都是在后台队列分批导出,导出完成后就通知用户下载。
@史沟飞 嗯 这个想到过
请问一下,老哥你用队列导出了吗?
导出大量数据的问题怎么解决的 :joy:,我也遇到了同样的问题,导出的数据需要经过大量的查询遍历筛选,导致了N+1的问题,请求超时,使用插件队列没走通