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

Codeigniter's insert_batch () với hàng nghìn lần chèn bị thiếu bản ghi

insert_batch() cố gắng tránh chính xác sự cố của bạn - cố gắng chèn dữ liệu lớn hơn MySQL được định cấu hình để xử lý tại một thời điểm. Tôi không chắc liệu tùy chọn của MySQL cho điều đó có phải là max_allowed_packet hay không hoặc cái gì đó khác, nhưng vấn đề với nó là nó đặt giới hạn theo byte chứ không phải số hàng.

Nếu bạn đang chỉnh sửa DB_active_rec.php, mysql_driver.php hoặc bất kỳ thứ gì thích hợp ... hãy thử thay đổi số lượng 100 đó trong for() vòng. 50 nên là một lựa chọn an toàn hơn.

Ngoài ra, FYI - affected_rows() sẽ không trả về giá trị chính xác nếu bạn đang chèn hơn 100 hàng qua insert_batch() , vì vậy không đáng tin cậy để sử dụng nó như một kiểm tra thành công / lỗi. Đó là bởi vì insert_batch() chèn dữ liệu của bạn 100 bản ghi cùng một lúc, trong khi affected_rows() sẽ chỉ trả về dữ liệu cho truy vấn cuối cùng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_num_rows không hoạt động chính xác

  2. Thay đổi chức năng thành PDO

  3. regex trong SQL để phát hiện một hoặc nhiều chữ số

  4. Kiểm tra hiệu suất sử dụng MySQLdump và MySQL Shell Utility

  5. QueryException SQLSTATE [HY000] [1045] Quyền truy cập bị từ chối đối với người dùng 'homestead' @ 'localhost' (sử dụng mật khẩu:CÓ)