Я использовал для получения большого объема данных с помощью mysql_query, а затем итерации по результату один за другим для обработки данных. Пример:
$mysql_result = mysql_query("select * from user");
while($row = mysql_fetch_array($mysql_result)){
echo $row['email'] . "\n";
}
Недавно я просмотрел несколько фреймворков и понял, что они извлекли все данные в массив в памяти и вернули массив.
$large_array = $db->fetchAll("select * from user");
foreach($large_array as $user){
echo $user['email'] . "\n";
}
Я хотел бы знать плюсы и минусы каждого метода. Мне кажется, что загрузка всего в память - это рецепт катастрофы, если у вас очень длинный список предметов. Но опять же коллега сказал мне, что драйвер mysql должен будет поместить результат в память в любом случае. Я хотел бы получить мнение того, кто понимает, что речь идет о производительности. Пожалуйста, не комментируйте код, я просто сделал это в качестве примера для публикации.
Спасибо