1. 程式人生 > >Java關於大批量資料處理

Java關於大批量資料處理

在工作中,有時候會遇到大批量的資料處理,為了節省時間,一般會用執行緒批量處理,先舉例幾個方案。

1.批量查詢,單條處理 (利用執行緒池處理,執行緒池最大值:10)

  優勢:查詢速度快;

           出現異常影響數量小;

           事務處理及時;

  劣勢:佔用執行緒數量多;

            處理時間長;

            資料庫連結頻繁開啟、關閉

2.批量查詢,批量處理(不使用執行緒池,原因:資料量過多,事務提交相對較慢,使用執行緒池可能導致資料庫呼叫異常,影響後續資料插入)

  優勢:查詢速度快;

            處理速度快;

            不需要頻繁開啟與關閉資料庫連線;

  劣勢:事務處理時間較長;

            出現異常影響批量資料;

3.批量查詢,分批處理(可以嘗試使用執行緒池,根據處理資料事務響應速度與資料庫連線考慮)

  優劣:查詢速度快;

           處理速度相對較快;

           異常發生時,影響資料相對較少;

           事務處理不會過長;

在需要進行大批量資料處理的時候,可以根據自身需求進行調整,第三個方案比較中庸,負載也小(資料庫負載,三個方案都試驗過,對CPU與伺服器基本無負載),批量處理時需考慮異常資料的處理,需要開發一個單個或根據特定值處理的程式,處理異常資料。

(注:可以直接insert select 的資料不需要考慮,直接通過sql或請DBA處理)