yii2 框架 导出数据到csv 分页查询每次查100条
查询完数据处理之后及时删除变量
也是用 gc_collect_cycles();
也安装网上说的
\Yii::getLogger()->flushInterval = 1;
\Yii::getLogger()->flush(true);
也注释掉了模型的行为
但是内存的使用量还是在不断升高 最后溢出
怎么样才能解决内存溢出的问题
目前的解决办法是
减少joinwith 使用leftjoin代替 (查看使用joinwith 时的sql 会发现 有多余的查询)
使用数组 而不是对象 数组要比对象小很多
分页查询 分页写入
分段查詢、分段寫入
已经分页查询了
为什么cpu那么高
@包子心的土豆:
寫入呢?也是分段寫入嗎
@RosonJ: 是的 一次一万
@包子心的土豆:
先做個文字log把執行時間印出來看看,例如每做完1萬筆印一次log,看看瓶頸在哪
該不會是server 效能不好吧...
一百万数据放一个Excel里?
五六十万吧
csv
excel貌似不支持一百万
csv
用携程试试 另外一个yeild出来 直接睡一会
最好贴出代码
不说导入了,就算正常用软件打开这个50W条数据的excel都会卡死。。。这么多数据不知道为啥要放到excel。。。
业务部门需要
@包子心的土豆: 如果正常导出,navicat直接可以导出成excel文件,压根不需要php。
到那么大,excel能打开吗
– 弯月亮 4年前@弯月亮: 有点慢 但是可以打开
– 包子心的土豆 4年前