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!