- Khi insert 1 list bàn ghi vào DB thì giữa việc sử dụng 1 luồng với batch insert và sử dụng multi thread của java để insert từng bản ghi một, cái nào sẽ có performance tốt hơn ạ ?
- Nếu insert cùng 1 lúc nhiều bản ghi như vậy vào cùng 1 table có id auto increase thì DB sẽ xử lý insert tuần tự ạ?
MySQL insert batch or insert single with multithread in JAVA
Chào mọi người, hiện em đang là sv năm 3 IT của 1 trường đh tại Hà Nội và đang học java và mysql.
Em có một câu hỏi mong mọi người có thể giải đáp ạ.
java
mysql
Remain: 5
2 Answers
hovanvydut
Beginner
tvd12
Enlightened
tvd12
Enlightened
Hi em, anh xin trả lời như sau:
Khi insert 1 list bàn ghi vào DB thì giữa việc sử dụng 1 luồng với batch insert và sử dụng multi thread của java để insert từng bản ghi một, cái nào sẽ có performance tốt hơn ạ ?
- chắc chắn dùng batch tốt hơn em ạ, vì mỗi câu lệnh insert thường sẽ phải dùng câu lệnh <code>SELECT 1</code> để kiểm tra có kết nối không với server, nên nó sẽ lâu hơn 1 chút, chưa kể việc insert thường sẽ phải đi song hành với transaction. Tuy nhiên trong nhiều ứng dụng để đảm bảo chắc chắn dữ liệu đã được ghi thành công vào cơ sở dữ liệu thì người ta vẫn insert từng cái 1, vì ghi theo batch thường là phải sử dụng 1 luồng riêng
Nếu insert cùng 1 lúc nhiều bản ghi như vậy vào cùng 1 table có id auto increase thì DB sẽ xử lý insert tuần tự ạ?
- đúng như vậy em ạ
Nhớ là đừng quên sử dụng connection pool khi làm viêc với các sql server em nhé
-
1