java批量執行之分批處理

2021-08-28 03:38:25 字數 846 閱讀 9524

相關:

在處理一些與資料庫相關的操作的時候,通常把一些操作合併能夠起到優化的效果,並且數量越大,批量執行的效率比一條一條執行的效率要快的多。

比如有十條資料單條執行需要操作十次資料庫,批量的話執行一次資料庫的操作就可以。

對應的sql語句:

單次:insert into table_name (列1, 列2,...) values (值1, 值2,....);

insert into table_name (列1, 列2,...) values (值3, 值4,....);

批量:insert into table_name (列1, 列2,...) values (值1, 值2,....),(值3, 值4,....);

大家可以用sql直接去資料庫執行做一下對比,在資料庫越大的時候,他們的速度對比越明顯。

我原來做過sql資料匯入,同樣的資料不同的sql,單次插入的執行了800s,分批的50s內完成。這只是乙個大概的印象,大家可以自己做嘗試。

優點是可以一次性插入很多條資料,但是缺點也有,這個很多條資料是有限制的,不能無限大,資料庫太多的話資料庫直接報錯,匯入執行失敗,我記得提示的是(這條sql執行資料大於2m,無法執行),大概這樣的提示。

所以為了效率,也為了保證程式的正常執行,就需要分批的批量插入。

比如一次要插入8000條資料,資料庫受不了,那就一次插入500條。

這個**是某個部落格找的,原部落格找不到了,也不貼了。不過分批的方法有很多,這只是一種。

//分批處理

if (collectionutils.isnotempty(alllist))

}}

總結:優化既要保證效率,更要注重正確性。

Java多執行緒分批處理資料

場景 發簡訊,當有資料量龐大的簡訊需要傳送時,可以採用多執行緒的方式分批處理以提高效率,但執行緒要控制合適的數量,否則會極大消耗cpu資源 上 建立分頁類pageutil 分頁 param list 切割資料集合 param pagesize 每頁記錄數 param return public st...

大批量資料分批處理的推薦方式

對大批量資料進行增刪改操作時,比較推薦以下方式。該方式通過先取出所有欲處理的資料,然後將該資料分批處理。而不是通過limit的方式進行分批處理。相對於limit的好處是 如果limit第一批資料沒有全部更新,第二次limit取數的時候,可能會把第一次取到的資料再取一次。這樣就會重複處理。listli...

java 執行SQL批處理

方法 使用批量處理功能涉及下面的兩個方法 addbatch string 方法 executebatch方法 關於statement 的簡單範例可以是 statement stmt conn.createstatement stmt.insert delete from users stmt.ins...