1. 程式人生 > >JDBC / Spring / MyBatis 效能比較

JDBC / Spring / MyBatis 效能比較

測試目的:
比較JDBC,SpringJdbc和MyBatis的效能。

測試用例:
1. 查詢:查詢一張10000條資料的表,只取前1000條
2. 更新:對該表分別進行:
    a)插入一條資料
    b)更新一條資料
    c)刪除一條資料
3. 測試項:
    a)JDBC:純粹jdbc程式碼
    b)JDBC.Object:jdbc的結果集轉化為Object物件
    c)SpringJdbc:Spring的JDBC包,同樣使用Object物件
    d)MyBatis:MyBatis3版本框架

測試環境:
資料庫:SqlServer 2008
Java:jdk1.6 及時編譯選擇server

測試結果:
迴圈次數:是指for迴圈的次數,在每個迴圈中呼叫用例

得出的值:是指執行的時間,單位是ms

Read Write
次序 迴圈次數 JDBC JDBC.Object Spring.JDBC MyBatis JDBC JDBC.Object Spring.JDBC MyBatis
1 50 1922 2136 2113 3150 1193 1217 1620 1622
2 100 4303 4379 4377 5349 2105 2200 3296 3204
3 150 6395 6524 6556 7937 3088 3085 4446 4655
4 200 8485 8478 8709 10587 4013 4085 6367 6157
5 250 10560 10886 10899 13299 5003 5830 7245 7720
6 300 12720 13046 13064 15844 6074 6429 8647 8865
7 350 14861 15140 15204 18408 7158 7344 10132 9654
8 400 16954 17344 17400 21146 8364 8469 12034 11770
9 450 19036 19550 19555 23899 9515 10242 13336 12542
10 500 21200 21730 21832 26495 10133 11506 14834 14115
11 550 23331 23942 23987 29032 11605 12918 15966 15797

Read對比圖:


Write對比圖:


綜合比較:
read和write值由上面表格平均得到,即read[JDBC]=sum(read[JDBC])/sum(迴圈次數)
avg值=(read*3+write*2)/5
JDBC JDBC.Object Spring.JDBC MyBatis
read 42.35363636 43.38030303 43.54424242 53.07454545
write 20.68212121 22.21969697 29.67363636 29.12151515
avg 33.6850303 34.91606061 37.996 43.49333333


綜合比較圖:


結論:
JDBC > JDBC.Object > Spring.JDBC > MyBatis