私が持っていると仮定すると
$db is an instance of Zend_Db_Adapter_Abstract and
$sql = 'SELECT blah blah FROM table' will return a huge number of records.
次のように、返されたデータを処理する 2 つのコード フラグメントがあります。
// Code fragment 1 (let's call it C1).
$results = $db->fetchAll($sql);
foreach ($results as $row) {
// Process $row
}
// Code fragment 2 (let's call it C2).
$stmt = $db->query($sql);
while ($row = $stmt->fetch()) {
// Process $row
}
私の理解では、C1 は返されたすべてのデータを $results にロードします。そのため、膨大なデータが PHP メモリにロードされます。以下は私の質問です。
- C2 はすべてのデータを PHP メモリにロードしますか、それとも準備/実行のように 1 つずつ処理しますか?
- 他に選択肢がないと仮定すると、C1 と C2 のどちらがより良い選択肢でしょうか?
ありがとう!