Theo giả thuyết, nếu bạn cần xuất tất cả 100.000 hàng trong một phản hồi, bạn nên đặt PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
thành false
, thực hiện truy vấn và lặp lại tập kết quả từng hàng một bằng cách sử dụng tìm nạp . Để giải thích rõ, php đệm toàn bộ tập kết quả bất kể bạn có gọi fetchAll () if PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
hay không được đặt thành true.
Lợi ích là bạn giảm đáng kể mức tiêu thụ bộ nhớ tối đa của tập lệnh và bạn có thể bắt đầu phát trực tuyến đầu ra sớm hơn, mặc dù tổng thời gian để hoàn thành có thể lâu hơn hoặc có thể không lâu hơn.
Tôi đang bỏ qua những thứ khác mà bạn nên xem xét trong những trường hợp khắc nghiệt như vậy, chẳng hạn như bộ đệm đầu ra, v.v. ...