Tôi đã sử dụng để lấy lượng lớn dữ liệu bằng cách sử dụng mysql_query rồi lặp lại từng kết quả một để xử lý dữ liệu. Ví dụ:Trong PHP, những gì xảy ra trong bộ nhớ khi chúng ta sử dụng mysql_query
$mysql_result = mysql_query("select * from user");
while($row = mysql_fetch_array($mysql_result)){
echo $row['email'] . "\n";
}
Gần đây tôi nhìn vào một vài khuôn khổ và nhận ra rằng họ lấy tất cả dữ liệu vào một mảng trong bộ nhớ và trở về mảng.
$large_array = $db->fetchAll("select * from user");
foreach($large_array as $user){
echo $user['email'] . "\n";
}
Tôi muốn biết ưu/nhược điểm của từng phương pháp. Nó xuất hiện với tôi rằng tải tất cả mọi thứ trong bộ nhớ là một công thức cho thảm họa nếu bạn có một danh sách rất dài các mặt hàng. Nhưng sau đó một lần nữa, một đồng nghiệp nói với tôi rằng trình điều khiển mysql sẽ phải đặt kết quả đặt trong bộ nhớ anyway. Tôi muốn nhận được ý kiến của một người hiểu rằng câu hỏi là về hiệu suất. Xin vui lòng không bình luận về mã, tôi chỉ làm cho nó lên như một ví dụ cho bài viết.
Cảm ơn
Tại sao bạn không thử chúng? –
Ngược lại, hãy xem tại http://www.php.net/manual/en/function.mysql-unbuffered-query.php. – deceze