美文网首页
PHPExcel 大数量导出内存溢出

PHPExcel 大数量导出内存溢出

作者: hgjvse | 来源:发表于2018-08-21 16:05 被阅读0次

最近做导出数据时发现PHPExcel超过3W数据执行脚本会内存溢出,虽然将ini_set("memory_limit",'1024M');调整到这么大,还是内存溢出,而且这种本来就是不合理的一种做法,后来在网上查的解决办法是在new \PHPExcel() 之前加上缓存,代码如下:

$cacheMethod = \PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;

$cacheSettings = [' memoryCacheSize ' => '128MB'];

\PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

但是执行没有什么效果,最后改成使用csv导出。

$head = ['ID','审核日期','关键词','标题', '描述','性别', '年龄', '回复'];

$filename = implode('|',$params);

unset($params);

$path = 文件存放目录;

if(!is_dir($path)){

    mkdir($path,0777,true);//第三个参数如果为true则循环创建不存在的目录

}

$filePath = $path. $filename.'.csv';

$fp = fopen($filePath, 'w');//若csv文件不存在 则自动创建

fputcsv($fp, $head);

ob_start();

中间是循环查询数据将数据put到csv中

ob_flush();

flush();

fclose($fp);

经测试 使用csv 导出17W数据,使用227秒,文件大小共120M

使用PHPExcel 导出4W数据,报内存溢出

相关文章

  • PHPExcel 大数量导出内存溢出

    最近做导出数据时发现PHPExcel超过3W数据执行脚本会内存溢出,虽然将ini_set("memory_limi...

  • PHPexcel溢出

    使用PHPExcel导出文件,会出现由于文件体积问题导致PHP内存溢出,需要对PHPExcel的参数优化。文件过大...

  • 内存溢出 jmap

    如何导出内存映像文件 内存溢出自动导出 -XX:+HeapDumpOnOutOfMemoryError-XX:+H...

  • csv导出mysql数据

    PHPExcel太占内存,改用csv导出数据.假如服务器给php可用内存为50M,需要导出200M的数据.框架中查...

  • 九. EasyExcel导出大数据防止内存溢出

    一. 概述 在处理导出大数据时, 如果全部查出来再导出, 这样容易导致内存溢出, 为防止内存溢出, 可以分批查询进...

  • PHP多进程初探

    最近遇到用phpexcel生成excel文件导出,大数据量的时候会遇到PHP内存不足的问题(memory limi...

  • php实现导出10万条数据

    开发中经常遇到需要从数据库导出大量数据的问题,导出excel需要占用太多内存,最终回导致内存溢出而失败。csv是更...

  • 高性能的Excel生成工具(EasyExcel)

    简介 导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个导出,POI百万级...

  • java内存溢出异常分析以及处理思路

    一.java堆溢出 在创建对象数量达到堆的最大容量限制后会抛出内存溢出异常 处理思路: (1)与机器物理内存对比看...

  • PHPExcel 导出图片

    后台导出Excel时需要连图片一起导出,这里记录下使用PHPExcel导出时图片的处理代码:

网友评论

      本文标题:PHPExcel 大数量导出内存溢出

      本文链接:https://www.haomeiwen.com/subject/vqdjiftx.html