[英]Does PHP7's PDO ext read the entire result set into memory?
自从升级到PHP7以来,我已经注意到某些SQL语句不再起作用,而是用尽了内存。
我有以下代码:
$query = Yii::$app->db->createCommand('select * from tbl_title')->query();
while ($row = $reader->read()) {
var_dump($row);
exit();
}
Yii2的数据库抽象只是PDO上的极薄层,没有做任何额外的事情。 query()
除了在日志文件(Yii2)中添加一行以进行概要分析外,没有做任何额外的事情,而reader- reader->read()
仅调用PDO流的fetch()
函数。
但是它引用了我的表的大小(已使用的空间),导致内存不足,即尝试分配385 MB的进程内存:
允许的内存大小为134217728字节已用尽(尝试分配385883840字节)
作为一个扳手,如果我使用一个查询的结果集完全适合PHP过程的128 MB限制,则可以使用。
那么,PHP7是否已更改,我可以将其更改回吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.