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

PDO không thành công với quá nhiều bản ghi, truy vấn được đệm

Khi bạn sử dụng truy vấn không có bộ đệm, điều đó có nghĩa là tập kết quả của bạn đang được truyền trực tuyến từ máy chủ MySQL. Vì vậy, kết nối mà truy vấn (không có bộ đệm) chạy trên đó bận cho đến khi bạn đọc hàng cuối cùng của truy vấn. Trong trường hợp của bạn, kết nối là $MysqlConn .

(Một truy vấn được đệm chuyển toàn bộ tập kết quả vào RAM của chương trình php của bạn và giải phóng kết nối. Bạn sử dụng các truy vấn không có bộ đệm khi toàn bộ tập kết quả của bạn không vừa với RAM).

Các truy vấn không có bộ đệm nên được đóng một cách rõ ràng khi bạn hoàn thành chúng. Vì vậy, hãy thêm một closeCursor() gọi . Như thế này.

while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
    $order_ids[] = $row['order_id'];
}
$ordStat->closeCursor();

Cũng không có hại gì khi đóng các truy vấn trong bộ đệm. Đó là một thói quen tốt.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị trả về có thể có cho mysql_affected_rows ()

  2. MySQL Event Scheduler vào một thời gian cụ thể hàng ngày

  3. Hùng biện:Gọi ở đâu trên một mối quan hệ

  4. Nguyên nhân gây ra việc dọn dẹp không an toàn cho Spring Boot (bộ sưu tập) xảy ra

  5. lỗi cú pháp, 'mysql_connect' không mong muốn (T_STRING)