Java關於大批量資料處理
阿新 • • 發佈:2019-02-06
在工作中,有時候會遇到大批量的資料處理,為了節省時間,一般會用執行緒批量處理,先舉例幾個方案。
1.批量查詢,單條處理 (利用執行緒池處理,執行緒池最大值:10)
優勢:查詢速度快;
出現異常影響數量小;
事務處理及時;
劣勢:佔用執行緒數量多;
處理時間長;
資料庫連結頻繁開啟、關閉
2.批量查詢,批量處理(不使用執行緒池,原因:資料量過多,事務提交相對較慢,使用執行緒池可能導致資料庫呼叫異常,影響後續資料插入)
優勢:查詢速度快;
處理速度快;
不需要頻繁開啟與關閉資料庫連線;
劣勢:事務處理時間較長;
出現異常影響批量資料;
3.批量查詢,分批處理(可以嘗試使用執行緒池,根據處理資料事務響應速度與資料庫連線考慮)
優劣:查詢速度快;
處理速度相對較快;
異常發生時,影響資料相對較少;
事務處理不會過長;
在需要進行大批量資料處理的時候,可以根據自身需求進行調整,第三個方案比較中庸,負載也小(資料庫負載,三個方案都試驗過,對CPU與伺服器基本無負載),批量處理時需考慮異常資料的處理,需要開發一個單個或根據特定值處理的程式,處理異常資料。
(注:可以直接insert select 的資料不需要考慮,直接通過sql或請DBA處理)