專案中有乙個大資料插入的功能是通過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...