导入或者导出1000+左右基本还勉强可以
但是数量超过5000+的时候,就直接崩了,无响应……
这个应该如何解决,php.ini已经修改了配置,还是不行,还是应该修改缓存位置?
导入或者导出1000+左右基本还勉强可以
但是数量超过5000+的时候,就直接崩了,无响应……
这个应该如何解决,php.ini已经修改了配置,还是不行,还是应该修改缓存位置?
减少内存占用方法:
设置缓存
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( ' memoryCacheSize ' => '8MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
只读取指定的sheet
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setLoadSheetsOnly( array("Worksheet1", "Worksheet2") );
$objPHPExcel = $objReader->load("test.xlsx");
如果还不够,那只能调整php内存上限了
(1) phpexcel在处理大数据量时很弱鸡,用php自带的fputcsv()
(2) 数据库拿数据时候不要一下获取整个结果集,否则数据量大会报内存溢出,用迭代器方式拿数据
我的一个测试例子:
从数据库获取15万条商品记录导入表格文件中, 文件大小有41.9M, 执行时间为6.91秒
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
执行的时候set_time_limit(0);
php.ini memory_limit = 1024M
我本地试了下,7万行,文件15M,可以打印的出来。
你php服务重启下试试
然后就是先试试看,是哪里出问题,如导入读取出问题,还是执行mysql出问题