JPAとmybatisのCRUD比較
2803 ワード
ネット上で多くの招待状がJPAのスピードが遅いと言っていることを発見して、多くの招待状が反論して、それを信じないでいっそ自分でテストします
テストに使用するSpringBootバージョン:1.4.3.RELEASE
使用するデータベースのテスト:MySQL挿入速度比較(このときのデータテーブルはほぼ空) JPAは、1つのデータを挿入する1回に1つのデータを挿入することを要求し、 を使用する. mybatisは1本のデータを挿入する1回に1本のデータを挿入することを要求して、時 を使います
クエリー速度の比較(このときデータテーブルに1万件のデータがある) JPAクエリーデータ(JPAのfindByTitle)1回のクエリーで、クエリー結果は400件のデータで、時間は である. mybatisクエリーデータ1回クエリー、クエリー結果は400データ、使用時間 クエリー20万データ速度の比較 JPAクエリーデータ(JPAのfindByTitle)1回のクエリーで、クエリー結果は400件のデータで、時間は である. mybatisクエリーデータ1回クエリー、クエリー結果は400データ、使用時間 百万データ量速度の比較(このときデータテーブルに108万個のデータがある) JPAクエリーデータ(JPAのfindByTitle)1回のクエリーで、クエリー結果は400件のデータで、時間は である. mybatisクエリーデータ1回クエリー、クエリー結果は400データ、使用時間 ページング百万データ量速度の比較(このときデータテーブルに108万個のデータがある) JPAページングクエリーデータ(カスタムクエリー文)1回のクエリーで、各ページのクエリー結果は50個のデータで、24,5679142、その後10回連続のクエリーで、平均使用時間は である.
JPAページングクエリーデータ(Pageableクエリー)1回のクエリーで、各ページのクエリー結果は50件のデータで、 である. mybatisクエリーデータは1回クエリーされ、各ページのクエリー結果は50個のデータで、 である.削除データ比較(このときデータテーブルに108万件のデータがある) . JPAは、1つのデータ(deteteBy)を削除する1回目の削除用時間 を削除する. JPA削除一日データ(カスタム削除)初回削除用時 . mybatis 1本のデータを削除1回目の削除用時 を削除する.更新データの比較(このときデータテーブルに108万件のデータがある) . JPAは、1つのデータを更新初めて1つのデータを更新(プライマリ・キーidによる更新)し、 を更新する. mybatisは、1つのデータを更新して初めて1つのデータを更新し(プライマリ・キーidに基づいて更新)、 を更新する.千万級クエリーの比較(このときデータテーブルに1100万件のデータがある) JPAは1本のデータ(findById)を照会して初めて1本のデータ(プライマリ・キーidによる照会)を照会して、 を照会します JPAは1つのデータ(カスタムクエリー)をクエリーして初めて1つのデータ(プライマリ・キーidによるクエリー)をクエリーして、 をクエリーします. mybatisは1本のデータをクエリーして初めて1本のデータ(プライマリ・キーidによるクエリー)をクエリーして、 をクエリーします
テストデータは参照用のみ
テストに使用するSpringBootバージョン:1.4.3.RELEASE
使用するデータベースのテスト:MySQL
75ms
を使用し、その後、1つのデータを挿入することを要求するたびに、3-5ms
で1万個のデータ(1万個のsave)を挿入することを要求し、45590ms
377ms
を使って、その後毎回1本のデータを挿入することを要求して、時2-4ms
は1回に1万本のデータ(1万個のsave)を挿入することを要求して、時7846ms
274ms
、その後10回連続のクエリーで、平均時間は8ms/
528ms
、その後10回連続クエリー、平均使用時間21ms/
452ms
、その後10回連続のクエリーで、平均時間は89ms/
538ms
、その後10回連続クエリー、平均使用時間115ms/
892ms
、その後10回連続のクエリーで、平均時間は492ms/
985ms
、その後10回連続クエリー、平均使用時間483ms/
96ms
,8ms/
、その後10回連続のクエリーで、平均使用時間は429ms
164ms/
、その後10回連続クエリーがあり、平均使用時間は506ms
6ms/
、その後、1回の削除平均用時間266ms
2ms
、その後削除毎平均用時68ms
1ms
、その後平均用時36ms
1ms
を用い、その後、平均62ms
2ms/
を使用し、その後、平均40ms
2ms/
を使って、それから毎回平均285ms
2ms/
を使って、それから毎回平均87ms
2ms/
を使って、それから毎回平均377ms
テストデータは参照用のみ