Zend_Db: fetchAll() oder query()/fetch() für eine große Anzahl von Datensätzen

Vorausgesetzt, ich habe

$db is an instance of Zend_Db_Adapter_Abstract and
$sql = 'SELECT blah blah FROM table' will return a huge number of records.

Gibt es zwei code-Fragmente zur Verarbeitung der zurückgegebenen Daten wie folgt.

//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
}

Mein Verständnis ist, dass C1 lädt alle zurückgegebenen Daten an die $Ergebnisse. Also, eine große Daten geladen, um PHP-Speicher. Hier sind meine Fragen.

  1. Tut C2-laden Sie alle Daten an PHP-Speicher oder verarbeitet Sie nacheinander wie vorbereiten/ausführen?
  2. Vorausgesetzt, es gibt keine andere option, ist C1 oder C2 die bessere Wahl?

Dank!

InformationsquelleAutor der Frage peidiam | 2012-05-05

Schreibe einen Kommentar