Mysql在插入大量數據(十萬級或者百萬級別)時效率會變得很差,所以需要採用以下方法來提高其插入效率。
a) 關閉自動提交 ,改爲手動提交
connect.setAutoCommit(false);
插入數據完後最後再con.commit();
b) 拆分數據,多線程入庫
c) 一條插入語句插入多條數據
insert into tableName (colume1,colume2, colume3)
values(1,2,3,), (4,5,6,), (7,8,9) ........
d) 使用批處理
可以加上批處理技術,但是使用了一條語句插入多條數據後,批處理的作用就不大了
可能碰到的問題
1. 因爲一條sql語句可能會很大,但是Mysql數據庫會對單次插入的數據大小有限制,所以應該更改數據庫中的max_allowed_packet值,將此值調大即可,當該值過小時會拋出一個異常,根據異常的堆棧信息便可定位到解決方案