в PHP, что происходит в памяти, когда мы используем mysql_query

Я использовал для получения большого количества данных, используя mysql_query, затем итерацию через результат один за другим, чтобы обработать данные. Ex:

$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 должен был бы поставить результат набор в память в любом случае. Я хотел бы получить мнение о том, кто понимает, что вопрос о производительности. Пожалуйста, не комментируйте В коде я только что сделал это в качестве примера для поста.

Спасибо

12
задан U0001 31 August 2011 в 07:34
поделиться