haveyb / export-csv
PHP 数据导出,利用 yield 优化大数据量导出时的内存占用,防止因内存过高而宕机
v2.0
2020-04-12 15:29 UTC
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-09-13 01:38:46 UTC
README
1、说明
PHP 在大数据导出时,尤其是超过五十万条数据后,内存消耗尤为严重。使用常规的导出方法可能导致内存溢出,甚至整个服务崩溃。
实际上,PHP 从 5.5 版本开始就支持迭代器 yield,使用 yield 可以大幅节省内存,无需担心导出百万或千万条数据时内存溢出。
2、配置
在 src/MySQLConfig.php 下配置MySQL连接参数
默认使用 "default" 下标下的配置参数进行连接,调用时也可以传递指定的连接
3、使用
$csv = new ExportCsv(); $sql = 'select admin_id,user_name,age from admin'; $head = ['用户ID', '用户名', '年龄']; $csv->exportCsv($sql, $head, 'test_1', '后台用户表');
效果示例:
注意:
在将数据导出到表格时,尽量不要将第一个字段名设置为 'ID',因为这会导致 WPS 报错,提示“wps表格已经监测到...是SYLK文件,但是不能将其加载”。不妨尝试其他名称。
