ZF1 ベースのアプリケーションで次のコードを使用しています。
$select = $db->select()->from('table', array('id', 'int', 'float'))->limit(10000, (($i - 1) * 10000));
$data = $select->query();
while ($row = $data->fetch()) {
# ...
}
この操作は foreach ループで約 800 回発生しています。各パスのメモリ使用量を出力すると、パスごとに約 5MB 増加することがわかります。これは、パスが完了すると、Zend がクエリから結果を明らかに解放しないためだと思います。単純な設定解除では問題は解決しませんでした。fetchAll を使用しても状況は改善 (または変化) しませんでした。
Zend_Db_Statement_PDO から結果を解放して、使用されているメモリを解放する方法はありますか? それとも別の理由を疑っていますか?