發(fā)現(xiàn)網(wǎng)上有不少帖子說JPA速度慢,也有不少帖子反駁,不知道信那個干脆自己測試一下
測試所用的SpringBoot版本:1.4.3.RELEASE
測試所用的數(shù)據(jù)庫:MySQL
-
插入速度比較(此時(shí)的數(shù)據(jù)表中基本為空)
-
JPA插入一條數(shù)據(jù)
一次請求 插入一條數(shù)據(jù),用時(shí)75ms,之后每次請求 插入一條數(shù)據(jù),用時(shí)在3-5ms
一次請求 插入一萬條數(shù)據(jù)(一萬個save),用時(shí)45590ms -
mybatis插入一條數(shù)據(jù)
一次請求 插入一條數(shù)據(jù),用時(shí)377ms,之后每次請求 插入一條數(shù)據(jù),用時(shí)在2-4ms
一次請求 插入一萬條數(shù)據(jù)(一萬個save),用時(shí)7846ms
-
JPA插入一條數(shù)據(jù)
-
查詢速度的比較(此時(shí)數(shù)據(jù)表中有1萬條數(shù)據(jù))
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)274ms,之后10次連續(xù)的查詢,平均用時(shí)8ms/次 -
mybatis查詢數(shù)據(jù)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)528ms,之后10次連續(xù)的查詢,平均用時(shí)21ms/次
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
-
查詢20萬數(shù)據(jù)量速度的比較
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)452ms,之后10次連續(xù)的查詢,平均用時(shí)89ms/次 -
mybatis查詢數(shù)據(jù)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)538ms,之后10次連續(xù)的查詢,平均用時(shí)115ms/次
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
-
查詢百萬數(shù)據(jù)量速度的比較(此時(shí)數(shù)據(jù)表中有108萬條數(shù)據(jù))
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)892ms,之后10次連續(xù)的查詢,平均用時(shí)492ms/次 -
mybatis查詢數(shù)據(jù)
一次查詢,查詢結(jié)果為400條數(shù)據(jù),用時(shí)985ms,之后10次連續(xù)的查詢,平均用時(shí)483ms/次
-
JPA查詢數(shù)據(jù)(JPA的findByTitle)
-
分頁查詢百萬數(shù)據(jù)量速度的比較(此時(shí)數(shù)據(jù)表中有108萬條數(shù)據(jù))
-
JPA分頁查詢數(shù)據(jù)(自定義查詢語句)
一次查詢,每頁查詢結(jié)果為50條數(shù)據(jù),用時(shí)96ms,之后10次連續(xù)的查詢,平均用時(shí)8ms/次
-
JPA分頁查詢數(shù)據(jù)(自定義查詢語句)
-
JPA分頁查詢數(shù)據(jù)(Pageable查詢)
一次查詢,每頁查詢結(jié)果為50條數(shù)據(jù),用時(shí)429ms,之后10次連續(xù)的查詢,平均用時(shí)164ms/次 -
mybatis查詢數(shù)據(jù)
一次查詢,每頁查詢結(jié)果為50條數(shù)據(jù),用時(shí)506ms,之后10次連續(xù)的查詢,平均用時(shí)6ms/次
- 刪除數(shù)據(jù)比較(此時(shí)數(shù)據(jù)表中有108萬條數(shù)據(jù))
-
JPA刪除一條數(shù)據(jù)(deteteBy)
第一次刪除用時(shí)266ms,之后每次刪除平均用時(shí)2ms -
JPA刪除一天數(shù)據(jù)(自定義刪除)
第一次刪除用時(shí)68ms,之后每次刪除平均用時(shí)1ms -
mybatis刪除一條數(shù)據(jù)
第一次刪除用時(shí)36ms,之后每次刪除平均用時(shí)1ms
- 更新數(shù)據(jù)的比較(此時(shí)數(shù)據(jù)表中有108萬條數(shù)據(jù))
-
JPA更新一條數(shù)據(jù)
第一次更新一條數(shù)據(jù)(根據(jù)主鍵id更新),用時(shí)62ms,之后每次更新平均2ms/次 -
mybatis更新一條數(shù)據(jù)
第一次更新一條數(shù)據(jù)(根據(jù)主鍵id更新),用時(shí)40ms,之后每次更新平均2ms/次
- 千萬級查詢的比較(此時(shí)數(shù)據(jù)表中有1100萬條數(shù)據(jù))
-
JPA查詢一條數(shù)據(jù)(findById)
第一次查詢一條數(shù)據(jù)(根據(jù)主鍵id查詢),用時(shí)285ms,之后每次查詢平均2ms/次 -
JPA查詢一條數(shù)據(jù)(自定義查詢)
第一次查詢一條數(shù)據(jù)(根據(jù)主鍵id查詢),用時(shí)87ms,之后每次查詢平均2ms/次 -
mybatis查詢一條數(shù)據(jù)
第一次查詢一條數(shù)據(jù)(根據(jù)主鍵id查詢),用時(shí)377ms,之后每次查詢平均2ms/次