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

Cần chèn 100000 hàng trong mysql bằng chế độ ngủ đông trong vòng chưa đầy 5 giây

Sau khi thử tất cả các giải pháp khả thi, cuối cùng tôi đã tìm ra giải pháp để chèn 100.000 hàng dưới 5 giây!

Những điều tôi đã thử:

1) Đã thay thế id AUTOINCREMENT / GENERATED của cơ sở dữ liệu ngủ đông bằng ID tự tạo bằng AtomicInteger

2) Bật batch_inserts với batch_size =50

3) Xóa bộ nhớ cache sau mỗi số lần gọi 'batch_size'

4) đa luồng (không thử cái này)

Cuối cùng, những gì đã hoạt động là sử dụng truy vấn nhiều chèn gốc và chèn 1000 hàng trong một truy vấn chèn sql thay vì sử dụng Kiên trì () trên mọi thực thể. Để chèn 100.000 thực thể, tôi tạo một truy vấn gốc như sau "INSERT into MyTable VALUES (x,x,x),(x,x,x).......(x,x,x)" [1000 lượt chèn hàng trong một truy vấn chèn sql]

Bây giờ mất khoảng 3 giây để chèn 100.000 bản ghi! Vì vậy, nút thắt cổ chai là chính orm! Đối với chèn hàng loạt, điều duy nhất có vẻ hoạt động là các truy vấn chèn gốc!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lưu kết quả truy vấn MySQL vào tệp excel hoặc .txt?

  2. Cách nhanh nhất để chèn giá trị từ datagridview vào cơ sở dữ liệu mysql là gì

  3. Tại sao tôi nhận được lỗi Không thể chuyển tham số 2 do tham chiếu khi tôi đang sử dụng bindParam với một giá trị không đổi?

  4. Tìm giá trị chính xác từ một chuỗi được phân tách bằng dấu phẩy trong PHP MySQL

  5. truyền một chuỗi thành thời gian sql