Supponendo che hoZend_Db: fetchAll() o query()/fetch() per un enorme numero di record
$db is an instance of Zend_Db_Adapter_Abstract and
$sql = 'SELECT blah blah FROM table' will return a huge number of records.
Ci sono due frammenti di codice per elaborare i dati restituiti nel modo seguente.
// 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
}
La mia comprensione è che C1 caricherà tutti i dati restituiti in $ risultati. Quindi, un enorme dato viene caricato nella memoria PHP. Di seguito sono le mie domande.
- C2 carica tutti i dati nella memoria PHP o li elabora uno alla volta come prepara/esegue?
- Supponendo che non ci siano altre opzioni, C1 o C2 è un'opzione migliore?
Grazie!
Grazie per il vostro allarme sull'uso fetch() :) – peidiam