jdbc 批量插入優化

2021-09-01 23:01:57 字數 510 閱讀 2510

專案中有乙個大資料插入的功能是通過jdbc的批處理實現的,但效率一直不理想。

最近研究了一下,做如下總結:

1) 如果id使用的是uuid,一定要保證有序。

因為通常資料庫會為主鍵建立聚集索引。而聚集索引是用來指明資料排序規則的。所以,對於非有序的id,插入的同時會做大量的排序操作,很影響效率。

另外,我們在嘗試的過程中有使用apache axis.jar 下的******uuidgen生成有序id,但該生成操作特別耗時,不推薦使用。

最後我們採取的是最簡單粗暴的方法。自己寫生成uuid的方法。

2) preparedstatement

執行executebatch()後,記得clearbatch()

pstmt.executebatch();

pstmt.clearbatch();

3) 對錶索引進行優化

再插入的過程中,資料庫會自動維護索引,會消耗一定效能。索引是一把雙刃劍,請合理使用。

簡要記錄3點,希望對後來者有幫助。

jdbc批量插入

分享牛,分享牛原創。有這樣乙個需求,文字檔案中的資料批量的插入mysql 怎麼用 jdbc 方式批量插入呢?jdbc預設提供了批量插入的方法,可能用一次就忘記了,這裡做筆記記錄一下 jdbc 批量插入吧。connection conn null try 執行 ps.executebatch conn...

JDBC批量插入資料

一.直接上源 以匯入課表資料為例 批量插入新申請 匯入預設課表 throws sqlexception catch sqlexception e int number ps.executebatch 把剩餘的資料插入 conn.commit 手動提交事務 try catch sqlexception...

JDBC批量插入資料

批量操作的方式一般有兩種 事務提交方式和批量處理 先將命令的提交方式設為false,即手動提交conn.setautocommit false 最後在所有命令執行完之後再提交事務conn.commit private string url jdbc mysql localhost 3306 test...