Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cân nhắc về hiệu suất PDO fetchall ()?

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. ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết kế DB:bảng thành viên riêng biệt hay tất cả trong một bảng?

  2. Tại sao java.sql.DriverManager.getConnection (...) bị treo?

  3. MySQL Integer 0 so với NULL

  4. Trì hoãn các bản cập nhật thường xuyên trong MySQL

  5. Sắp xếp các kết quả để khớp với thứ tự của các giá trị trong biểu thức WHERE IN