Я использовал для получения большого объема данных с помощью mysql_query, а затем итерации по результату один за другим для обработки данных. Пример:В PHP, что происходит в памяти, когда мы используем 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 должен будет поместить результат в память в любом случае. Я хотел бы получить мнение того, кто понимает, что речь идет о производительности. Пожалуйста, не комментируйте код, я только что сделал его примером для публикации.
Благодаря
Почему бы не попробовать их сами? –
Для сравнения, посмотрите http://www.php.net/manual/en/function.mysql-unbuffered-query.php. – deceze