以前總是說批量插入和更新的效率比非批量的要高,但是到底高多少,沒有評估過,今天我就具體的測試下示例xml
"insertuser">
insert into test_user (u_name,create_date) value (#,sysdate())
示例**:
for (int i = 1; i <= num; i++)
示例**:
connection conn;
try
prest.executebatch();
conn.commit();
conn.close();
} catch (exception ex)
資料量分別是10,100,300,1000,5000條資料
資料量:10
批量更新耗時:279
非批量更新耗時:1522
jdbc批量更新耗時:255
資料量:100
批量更新耗時:720
非批量更新耗時:3391
jdbc批量更新耗時:1912
資料量:300
批量更新耗時:987
非批量更新耗時:9827
jdbc批量更新耗時:7616
資料量:500
批量更新耗時:1649
非批量更新耗時:16253
jdbc批量更新耗時:10475
資料量:1000
批量更新耗時:2552
非批量更新耗時:33048
jdbc批量更新耗時:20793
資料量:5000
批量更新耗時:19066
非批量更新耗時:239127
jdbc批量更新耗時:103273
綜上分析,效率排比如下
mybatis批量更新 > jdbc批量更新 > 迴圈呼叫update語句
示例xml
update test_user set test_user.u_name = (#) where test_user.u_name = (#)
示例**
for (int i = 1; i <= num; i++)
示例**
connection conn;
try
stmt.executebatch();
conn.commit();
conn.close();
} catch (exception ex)
其實是利用了mysql的批量更新的語法
case when的語法
詳見 【case when 語法】
示例xml
id="batchupdatelist">
update test_user
prefix="set"
suffixoverrides=",">
prefix="u_name =case"
suffix="end,">
item="item"
collection="userlist">
when test_user.u_name = (#)
then #
foreach>
trim>
trim>
where
item="item"
collection="userlist"
separator="or">
(test_user.u_name = (#))
foreach>
update>
示例**
for (int i = 1
; i <= num; i++)
userdao.batchupdatelist(userlist);
資料量分別是10,100,300,1000,5000條資料
資料量:10
批量更新耗時:279
非批量更新耗時:1522
jdbc批量更新耗時:255
資料量:100
批量更新耗時:720
非批量更新耗時:3391
jdbc批量更新耗時:1912
資料量:300
批量更新耗時:987
非批量更新耗時:9827
jdbc批量更新耗時:7616
資料量:500
批量更新耗時:1649
非批量更新耗時:16253
jdbc批量更新耗時:10475
資料量:1000
批量更新耗時:2552
非批量更新耗時:33048
jdbc批量更新耗時:20793
資料量:5000
批量更新耗時:19066
非批量更新耗時:239127
jdbc批量更新耗時:103273
綜上分析,效率排比如下
mybatis批量更新 > jdbc批量更新 > 迴圈呼叫update語句
java 3種簡單的排序
1.氣泡排序 public class testsort bubblesort a 靜態方法中直接通過類名呼叫靜態方法,或者通過物件去呼叫非靜態的方法 for int i 0 i i j insertsort array for int i 0 i 1 a j 1 tmp a j tmp 每乙個a ...
Mysql 批量操作,存在更新,不存在插入
在大量資料插入,但是有很多重複資料。假設有如下資料 語法如下 insert into table name clo1,col2,values val1 1,val1 2,val2 1,val2 2,val3 1,val3 2,on duplicate key update clo1 values c...
記錄我的「從零開始學Java」 3
今天又寫了乙個通過生成隨機數組來轉化為字母進行輸出的類,但是發現乙個很神奇的現象 當使用者輸入的隨機數組內元素數量較多時,例如56個元素,此時該陣列最終輸出的數值和字母表現出來驚人的重複性,甚至是aaa bbb ccc這樣的結構!於是我又研究了好久為什麼會這樣,最後發現。我在輸出陣列之前對陣列進行了...