PHP 内存溢出
Posted willem_chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 内存溢出相关的知识,希望对你有一定的参考价值。
内存溢出解决方案
在做数据统计分析时,经常会遇到大数组,可能会发生内存溢出,这里分享一下我的解决方案。还是用例子来说明这个问题,如下:
假定日志中存放的记录数为500000条,那么解决方案如下:
优化点
1 优化 SQL 语句,避免慢查询,合理的建立索引,查询指定的字段,sql 优化这块在此就不展开了。
2 查询的结果集为大对象时转数组处理,框架中一般有方法可以转,如 Laravel 中有 toArray (),Yii2 中有 asArray ()。
3 对于大数组进行数据切割处理,PHP 函数有 array_chunk ()、array_slice ()。
4 对于大型的字符串和对象,使用引用传递 &。
5 用过的变量及时 unset。
6 导出的文件格式由 excel 改为 csv
7 ini_set (‘memory_limit’,’’),设置程序可以使用的内存 (不建议这样做)。
销毁变量并释放内存
public
以上是关于PHP 内存溢出的主要内容,如果未能解决你的问题,请参考以下文章