多執行緒之批量插入小demo

2022-02-18 22:25:19 字數 1687 閱讀 1330

昨天在測試mysql的兩種批量更新時,由於需要入庫大量測試資料,反覆執行插入指令碼,過程繁瑣,檔次很低,測試完後我就想著寫個批量插入的小demo,然後又想寫個多執行緒的批量插入的demo,然後就有了下面的東西了……

spring-boot 1.5.6整合 mysql druid mybits 還有一些無關緊要的東西

執行緒類:

/***@classnameinsertdatathread

*@description<

插入資料類

>

*@authorzhaiyt

*@date2018/8/29 17:04

*@version1.0

*/public classinsertdatathreadextendsthreadcatch(exceptione)

}}

service層的多執行緒批量插入方法:

/***@paramlist

*@returnint

*@description<

批量插入

>

*@authorzhaiyt

*@date9:51 2018/8/29

*@param[list]

*/@override

public intinsertbatch(list<userentity> list)throwsif(collectionutils.isempty(listuser))

//根據資料量判斷是否使用多執行緒 選擇開啟執行緒數

if(listuser.size() > 1000000)else if(listuser.size() > 100000)else if(listuser.size() > 10000)else

//計數器

intsize = 0;

//建立執行緒池

executorservice fixedthreadpool =executors.newfixedthreadpool(betch);

for(inti = 0; i < (math.ceil(listuser.size() / 5000)); i++)

專案路徑:

sql server 批量插入資料demo

測試表結構如下 create table dbo tblphonenum id bigint identity 1,1 not null,phonenum nvarchar 50 not null,name nvarchar 50 not null,source nvarchar 50 null,c...

mybatis使用多執行緒批量插入資料

昨天在專案中有乙個excel導表的操作,於是就想著用多執行緒插入資料。網上找了下mabayis多執行緒插入資料,看了很多都是配置的xml,但我不是很喜歡寫xml.於是自己手寫了乙個,可能不是很優雅,但還是記錄一下.不多說,直接上 controller,和dao就不放了,主要是service層 ove...

多執行緒實現demo

多執行緒應用場景 報表匯出,大批量資料同步等等吧。同步100萬條資料,單個執行緒假如需要2.5個小時,如果5個執行緒一起跑可能只需要0.5小時,10個執行緒一起跑可能只需要十五分鐘。這樣就大大提高了效率。那麼我們如果讓多個執行緒同時跑,而且又跑的是不重複的資料呢,可以按照id 時間段進行分割。每乙個...