[英]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.