测试环境:laravel5.8 基于Maatwebsite\Excel 导出excel表格
通过控制器直接导出测试注意事项:
需要考虑执行php配置的响应时间 可占用内存上限制
经过测试:最大执行时间默认30会操作超时 最大可用内存512时,会报内存溢出。
我的配置:修改php.ini
max_execution_time = 100
memory_limit = 1024M
可完成:
普通varchar类型数据 (varchar20-45均有)5列 可一次性导出10W条
接下来基于laravel的queue队列执行测试导出数据:
默认的队列监听会 内存溢出: 需要关键性的配置一下可操作内存 根据以上测试 这里我直接测试1024M
php artisan queue:work --delay=10 --memory=1024 --sleep=3 --tries=3 --queue=default
测试如下:
5列 一次性导出10W条 排队记录6 可操作执行完成
接下来我改变数据表数据结构:把数据增加到26列
一次性导出:
10W条 内存溢出
5W条 内存溢出
2.5W条 进行到第二条后出现了阻塞情况 此数据量已超负荷
2W条 进行到第二条后出现了阻塞情况 此数据量已超负荷
1.5W条 测试顺利执行
说明
改测试仅供诸位路过者参照,根据电脑的硬件配置不同,操作系统不同,系统环境,数据库填充不同,是想方式不同,场景逻辑不同,语言间接性不同,业务不同,等等各种差异性,大家得到结论都不一样,希望能提供参考帮助。
以上。