Submitted:
15 January 2024
Posted:
16 January 2024
You are already at the latest version
Abstract
Keywords:
1. Introduction
2. Proposed Research Approach
3. Problem Background
- atomicity – ensures that the transaction operations are all executed or none
- consistency – ensures that only correct data is added to the database
- isolation – ensures that transactions are not affected by other transactions
- durability – ensures that data committed to the database is stored permanently
- DDL (data definition language)
- DQL (data query language)
- DML (data manipulation language)
- DCL (data control language)
- it hides the SQL interaction
- it offers development with objects instead of database tables
- there is no need to take care of the database implementation
- there is less code written for the same job
- it is based on the JBDC, in the underlying
- MySQL
- Oracle SQL
- Microsoft SQL Server
- PostgreSQL
4. Previous Research
5. Architecture of the Application
- BLUE -> JPA with all RDBMS
- GREEN -> Hibernate with all RDBMS
- ORANGE -> Spring Data JPA with all RDBMS
6. Implementation of the Solution
-
Ticket
- ticket id -> the unique identifier for a ticket
- status -> one of the following values: WON, LOST, PENDING
- sum -> represents the amount placed on the ticket as betting value
-
Bet
- bet id -> the unique identifier for a bet
- match id -> the identifier of the match the bet is placed on
- ticket id -> the identifier of the ticket the bet belongs to
- result choice -> one of the following: 1 (host wins), 2 (visitor wins), X (even)
-
Match
- name -> a string like “Real Madrid – Barcelona”
- score -> the final score of the match
- host team win odd -> the odd for the host’s win
- visitor team win odd -> the odd for the visitor’s win
- draw odd -> the odd in case the match is even
- match date -> the date when the match will be played
- match id -> the unique identifier for a match
- CPU: Intel i7 – 6700HQ @ 2.6 GHz
- RAM: 8 GB
- Operating System: Windows 10 Pro 64-bit
7. Evaluation without JMH
7.1. Java Persistence API
7.2. Hibernate
7.3. Spring Data JPA
8. Evaluation with JMH
8.1. Java Persistence API, Warm-up Iteration
8.2. Hibernate, Warm-up Iteration
8.3. Spring Data JPA, Warm-up Iteration
8.4. Java Persistence API after Warm-up
8.5. Hibernate after Warm-up
8.6. Spring Data JPA after Warm-up
9. Bottlenecks Investigation
- Spring Data JPA has a big overhead, the slowest of all frameworks for batch operations
- Hibernate and JPA solutions go side by side, with almost overlapping graphs
- Spring Data JPA requires the fewest lines of code
9.1. Spring Data JPA Bottlenecks Investigation
- com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String, int)
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String)
- java.util.Properties.load(InputSteam)
- com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery()
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String)
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String, int)
- com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate()
- com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery()
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String)
- com.mysql.cj.jdbc.ConnectionImpl.prepareStatement(String, int)
- org.hibernate.internal.SessionImpl.persist(Object)
- oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String, String[])
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String)
- java.util.Properties.load(InputSteam)
- oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery()
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String, String[])
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String)
- oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate()
- oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery()
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String)
- oracle.jdbc.driver.PhysicalConnection.prepareStatement(String, String[])
- org.hibernate.internal.SessionImpl.persist(Object)
- org.postgresql.jdbc.PgPreparedStatement.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- org.postgresql.jdbc.PgConnection.prepareStatement(String, int)
- org.postgresql.jdbc.PgConnection.prepareStatement(String)
- java.util.Properties.load(InputSteam)
- org.postgresql.jdbc.PgPreparedStatement.executeUpdate()
- org.postgresql.jdbc.PgPreparedStatement.executeQuery()
- org.hibernate.internal.SessionImpl.persist(Object)
- org.postgresql.jdbc.PgConnection.prepareStatement(String, int)
- org.postgresql.jdbc.PgConnection.prepareStatement(String)
- org.postgresql.jdbc.PgPreparedStatement.executeUpdate()
- org.postgresql.jdbc.PgPreparedStatement.executeQuery()
- org.postgresql.jdbc.PgConnection.prepareStatement(String, int)
- org.postgresql.jdbc.PgConnection.prepareStatement(String)
- org.hibernate.internal.SessionImpl.persist(Object)
- com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate()
- org.hibernate.internal.SessionImpl.persist(Object)
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String, int)
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String)
- java.util.Properties.load(InputSteam)
- com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate()
- com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery()
- org.hibernate.internal.SessionImpl.persist(Object)
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String, int)
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String)
- com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate()
- com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery()
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String, int)
- com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(String)
- org.hibernate.internal.SessionImpl.persist(Object)
9.2. Reducing Spring Data JPA Bottlenecks
10. Conclusions
10.1. Conclusions without JMH
10.1.1. Java Persistence API
10.1.2. Hibernate
10.1.3. Spring Data JPA
10.1.4. Overall conclusions
10.2. Conclusions with JMH
10.2.1. Java Persistence API
10.2.2. Hibernate
10.2.3. Spring Data JPA
10.2.4. Overall conclusions
Author Contributions
Conflicts of Interest
References
- Keith, M.; Schnicariol, M. Object-relational mapping. Pro JPA 2, Apress 2009, pp. 69-106.
- Tudose, C.; Odubăşteanu, C. Object-relational Mapping Using JPA, Hibernate, and Spring Data JPA. In Proceedings of the 23rd International Conference on Control Systems and Computer Science, Bucharest, Romania, 26-28 May 2021. [Google Scholar]
- Bonteanu, A.-M.; Tudose, C. Multi-platform Performance Analysis for CRUD Operations in Relational Databases from Java Programs Using Hibernate. In Proceedings Big Data Intelligence and Computing: International Conference, DataCom 2022, Denarau Island, Fiji, December 8–10, 2022, pp. 275–288.
- Bonteanu, A.M.; Tudose, C.; Anghel, A. M. Performance Analysis for CRUD Operations in Relational Databases from Java Programs Using Hibernate. In Proceedings of the 24th International Conference on Control Systems and Computer Science (CSCS), Bucharest, Romania, 24-26 May 2023. [Google Scholar]
- Bonteanu, A.-M.; Tudose, C.; Anghel, A. M. Multi-Platform Performance Analysis for CRUD Operations in Relational Databases from Java Programs using Spring Data JPA. 13th International Symposium on Advanced Topics in Electrical Engineering (ATEE), Bucharest, Romania, 23-25 March 2023.
- Atzeni, P.; De Antonellis, V. Relational database theory. Benjamin-Cummings Publishing Co., Inc. 1993. [Google Scholar]
- Yousaf, H. Performance evaluation of Java object-relational mapping tools. Master of Science Thesis, University of Georgia. 2012. [Google Scholar]
- Hossain I.; Sazal M.; Das Santa T. Oracle, MySQL, PostgreSQL, SQLite, SQL Server: Performance-based competitive analysis, Bachelor of Science Degree in Computer Science and Engineering, Daffodil International University Dhaka, Bangladesh. 2019.
- Zmaranda, D.; Pop-Fele, L.; Gyorödi, C.; Gyorödi, R.; Pecherle, G. Performance Comparison of CRUD methods using NET Object Relational Mappers: A Case Study. International Journal of Advanced Computer Science and Applications, 2020; 55–65. [Google Scholar]
- Tudose, C. Java Persistence with Spring Data and Hibernate. Manning. 2023. [Google Scholar]
- Tudose, C. JUnit in Action. Manning. 2020. [Google Scholar]
- Costa D. E. D.; Bezemer C.; Leitner P.; Andrzejak A. What's Wrong With My Benchmark Results? Studying Bad Practices in JMH Benchmarks. IEEE Transactions on Software Engineering, 2019.
- YourKit. (2003-2023). YourKit Java Profiler. Available online: https://www.yourkit.com/java/profiler/features/ (accessed on 20 December 2023).
- Mihalcea V. High-Performance Java Persistence. self-published, Cluj-Napoca, 2019.
- Erder, M.; Pureur, P.; Woods, E. Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps. 2021. [Google Scholar]
- CiceriC.; FarleyD.; Ford N.; Harmel-Law A.; Keeling M.; Lilienthal C.; Rosa J.; von Zitzewitz A.; Weiss R.; Woods E. Software Architecture Metrics, O'Reilly Media, Inc, 2022.
- Anghel, I.I.; Calin, R.S.; Nedelea, M.L.; Stanica, I.C.; Tudose, C.; Boiangiu, C.A. Software development methodologies: a comparative analysis. UPB Scientific Bulletin. 2022, Series C, 3(84).






































|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2516 | 151 | 1326 | 1042 |
| 2000 | 4159 | 162 | 1883 | 1878 |
| 5000 | 7098 | 181 | 3968 | 4261 |
| 10000 | 10929 | 185 | 7114 | 7999 |
| 20000 | 18421 | 218 | 12829 | 15744 |
| 50000 | 39153 | 287 | 32834 | 39249 |
| 100000 | 74956 | 358 | 62832 | 77197 |
| 200000 | 143590 | 394 | 126214 | 150652 |
| 500000 | 351963 | 936 | 323144 | 396503 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 3074 | 170 | 1138 | 1802 |
| 2000 | 5137 | 190 | 1947 | 2562 |
| 5000 | 10539 | 251 | 3412 | 6401 |
| 10000 | 15883 | 276 | 6260 | 13558 |
| 20000 | 29387 | 432 | 12358 | 31179 |
| 50000 | 67173 | 870 | 29059 | 114553 |
| 100000 | 128997 | 1448 | 57233 | 356399 |
| 200000 | 252797 | 2475 | 125805 | 1233955 |
| 500000 | 644428 | 5340 | 280292 | 6824038 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2025 | 137 | 919 | 1915 |
| 2000 | 3369 | 141 | 1449 | 5357 |
| 5000 | 6570 | 152 | 3093 | 14537 |
| 10000 | 10072 | 156 | 5463 | 43295 |
| 20000 | 18244 | 199 | 10037 | 69716 |
| 50000 | 40867 | 277 | 25499 | 332162 |
| 100000 | 77262 | 301 | 49460 | 1094771 |
| 200000 | 151551 | 398 | 99474 | 2915678 |
| 500000 | 362260 | 574 | 240687 | 16479860 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1266 | 140 | 631 | 780 |
| 2000 | 2066 | 142 | 1066 | 1674 |
| 5000 | 4159 | 156 | 2165 | 5987 |
| 10000 | 7081 | 175 | 3928 | 18109 |
| 20000 | 13088 | 181 | 7835 | 60117 |
| 50000 | 29135 | 206 | 18105 | 311499 |
| 100000 | 56766 | 255 | 35528 | 1184886 |
| 200000 | 113826 | 448 | 73619 | 4592037 |
| 500000 | 254584 | 608 | 165012 | 28444411 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2470 | 125 | 1325 | 1253 |
| 2000 | 4554 | 138 | 1873 | 1922 |
| 5000 | 7456 | 168 | 3629 | 4159 |
| 10000 | 11004 | 177 | 6577 | 7793 |
| 20000 | 18374 | 191 | 12409 | 15337 |
| 50000 | 40688 | 278 | 31887 | 40001 |
| 100000 | 74397 | 325 | 63205 | 78410 |
| 200000 | 141294 | 466 | 126576 | 158083 |
| 500000 | 352569 | 876 | 324282 | 394135 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 3176 | 195 | 1424 | 1868 |
| 2000 | 5436 | 223 | 1871 | 2706 |
| 5000 | 10231 | 264 | 3347 | 6438 |
| 10000 | 16900 | 302 | 6025 | 14139 |
| 20000 | 28865 | 444 | 11561 | 30267 |
| 50000 | 65406 | 878 | 28601 | 112778 |
| 100000 | 125629 | 1306 | 56481 | 368699 |
| 200000 | 251595 | 2259 | 111793 | 1278305 |
| 500000 | 617148 | 5191 | 278557 | 7422952 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2200 | 139 | 932 | 2126 |
| 2000 | 3340 | 154 | 1437 | 5803 |
| 5000 | 6391 | 162 | 2905 | 27133 |
| 10000 | 10724 | 173 | 5510 | 102812 |
| 20000 | 18227 | 186 | 10045 | 273914 |
| 50000 | 39076 | 218 | 25955 | 359862 |
| 100000 | 72904 | 307 | 51129 | 979468 |
| 200000 | 142407 | 425 | 98792 | 3121897 |
| 500000 | 370316 | 548 | 251087 | 17313278 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1293 | 131 | 606 | 947 |
| 2000 | 2130 | 142 | 1002 | 1799 |
| 5000 | 4241 | 169 | 2094 | 6264 |
| 10000 | 7204 | 176 | 3776 | 18384 |
| 20000 | 12739 | 193 | 7217 | 59161 |
| 50000 | 29389 | 202 | 17682 | 314171 |
| 100000 | 59067 | 310 | 39052 | 1188371 |
| 200000 | 109056 | 420 | 69723 | 4668658 |
| 500000 | 265081 | 977 | 174504 | 28132449 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2787 | 196 | 3011 | 2623 |
| 2000 | 4564 | 213 | 4394 | 4627 |
| 5000 | 8013 | 256 | 7585 | 9971 |
| 10000 | 11890 | 310 | 12946 | 17137 |
| 20000 | 18832 | 321 | 22556 | 33349 |
| 50000 | 40862 | 542 | 51424 | 73632 |
| 100000 | 76899 | 924 | 100723 | 150835 |
| 200000 | 149905 | 1609 | 199141 | 289608 |
| 500000 | 362821 | 3295 | 517844 | 769762 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 3443 | 250 | 2716 | 4105 |
| 2000 | 5659 | 261 | 3975 | 7832 |
| 5000 | 10350 | 364 | 7189 | 16157 |
| 10000 | 16403 | 423 | 13425 | 24223 |
| 20000 | 30325 | 685 | 27542 | 54462 |
| 50000 | 64517 | 1131 | 78725 | 192894 |
| 100000 | 126518 | 1865 | 217443 | 608504 |
| 200000 | 247627 | 3000 | 695207 | 2045420 |
| 500000 | 616130 | 7357 | 3812967 | 11518822 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2402 | 204 | 2226 | 3825 |
| 2000 | 3719 | 216 | 3467 | 9568 |
| 5000 | 6563 | 233 | 7503 | 39334 |
| 10000 | 10836 | 241 | 16232 | 95429 |
| 20000 | 18401 | 313 | 41424 | 128738 |
| 50000 | 40906 | 434 | 183278 | 453490 |
| 100000 | 77917 | 824 | 635725 | 1367528 |
| 200000 | 154027 | 1281 | 2372789 | 4798632 |
| 500000 | 385139 | 2650 | 14151669 | 27788407 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1537 | 184 | 1382 | 1909 |
| 2000 | 2333 | 193 | 2487 | 3840 |
| 5000 | 4568 | 249 | 5977 | 13474 |
| 10000 | 7449 | 276 | 13813 | 39817 |
| 20000 | 12753 | 344 | 39310 | 91798 |
| 50000 | 29917 | 520 | 177045 | 491999 |
| 100000 | 57678 | 916 | 649842 | 1871472 |
| 200000 | 112006 | 1412 | 2653937 | 7295456 |
| 500000 | 281934 | 3374 | 19642338 | 52153866 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2597 | 159 | 1613 | 999 |
| 2000 | 3941 | 178 | 2189 | 2195 |
| 5000 | 7705 | 181 | 4392 | 4290 |
| 10000 | 13863 | 209 | 7590 | 9348 |
| 20000 | 25044 | 221 | 15168 | 17438 |
| 50000 | 48908 | 246 | 33677 | 39639 |
| 100000 | 88470 | 349 | 66443 | 80331 |
| 200000 | 171706 | 464 | 184202 | 211131 |
| 500000 | 376007 | 864 | 337634 | 406083 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 3210 | 177 | 1472 | 1740 |
| 2000 | 4711 | 239 | 2291 | 2421 |
| 5000 | 9812 | 243 | 3738 | 6461 |
| 10000 | 16374 | 362 | 7000 | 13310 |
| 20000 | 28576 | 534 | 12996 | 29308 |
| 50000 | 64462 | 946 | 30233 | 113767 |
| 100000 | 127381 | 1414 | 59729 | 355364 |
| 200000 | 263626 | 2411 | 119294 | 1321364 |
| 500000 | 615884 | 5256 | 291689 | 6856315 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2068 | 156 | 1053 | 2142 |
| 2000 | 3460 | 176 | 1694 | 6200 |
| 5000 | 6604 | 187 | 3611 | 26289 |
| 10000 | 10200 | 202 | 5829 | 61851 |
| 20000 | 18860 | 282 | 11136 | 76794 |
| 50000 | 41307 | 293 | 27672 | 485492 |
| 100000 | 80825 | 324 | 51316 | 1521422 |
| 200000 | 163146 | 410 | 107134 | 3353780 |
| 500000 | 406625 | 613 | 265850 | 19506821 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1388 | 124 | 839 | 837 |
| 2000 | 2315 | 155 | 1281 | 1696 |
| 5000 | 4267 | 176 | 2719 | 6418 |
| 10000 | 11808 | 189 | 4190 | 17863 |
| 20000 | 13154 | 213 | 8077 | 57640 |
| 50000 | 53033 | 254 | 18857 | 304455 |
| 100000 | 78439 | 353 | 35731 | 1084755 |
| 200000 | 154584 | 375 | 71922 | 4405165 |
| 500000 | 276020 | 539 | 181739 | 26875984 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2580 | 134 | 1653 | 1291 |
| 2000 | 3883 | 163 | 2457 | 1922 |
| 5000 | 7981 | 174 | 3928 | 4483 |
| 10000 | 14121 | 200 | 7845 | 8437 |
| 20000 | 24161 | 214 | 17527 | 17779 |
| 50000 | 49300 | 272 | 31505 | 39011 |
| 100000 | 90727 | 395 | 62460 | 79682 |
| 200000 | 154690 | 519 | 132628 | 162276 |
| 500000 | 422960 | 754 | 452453 | 536749 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2900 | 176 | 1366 | 1728 |
| 2000 | 5156 | 208 | 2127 | 2467 |
| 5000 | 9563 | 237 | 3660 | 6123 |
| 10000 | 15538 | 369 | 6736 | 13117 |
| 20000 | 31089 | 535 | 12600 | 32559 |
| 50000 | 65035 | 901 | 29441 | 112994 |
| 100000 | 124436 | 1416 | 57427 | 351471 |
| 200000 | 242417 | 2295 | 111213 | 1208644 |
| 500000 | 599872 | 5143 | 275656 | 6749529 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2249 | 157 | 1194 | 2519 |
| 2000 | 3612 | 172 | 2031 | 6098 |
| 5000 | 7056 | 191 | 3325 | 27331 |
| 10000 | 11151 | 215 | 6542 | 75966 |
| 20000 | 19603 | 235 | 11847 | 93770 |
| 50000 | 45659 | 339 | 30036 | 645622 |
| 100000 | 85737 | 351 | 53012 | 978065 |
| 200000 | 162910 | 459 | 106024 | 2931522 |
| 500000 | 413812 | 668 | 303875 | 18919726 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1272 | 139 | 794 | 1010 |
| 2000 | 2049 | 171 | 1298 | 1703 |
| 5000 | 4244 | 198 | 2451 | 5971 |
| 10000 | 7075 | 213 | 4028 | 17406 |
| 20000 | 12756 | 226 | 7514 | 57645 |
| 50000 | 30374 | 264 | 18040 | 299375 |
| 100000 | 58557 | 314 | 36891 | 1093245 |
| 200000 | 112398 | 387 | 72108 | 4350143 |
| 500000 | 280235 | 566 | 179190 | 27096855 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2806 | 291 | 3140 | 2588 |
| 2000 | 4452 | 327 | 4392 | 4321 |
| 5000 | 7538 | 436 | 8128 | 9205 |
| 10000 | 12296 | 503 | 14041 | 17983 |
| 20000 | 23047 | 566 | 23785 | 33954 |
| 50000 | 45282 | 812 | 31505 | 78208 |
| 100000 | 78175 | 1215 | 101722 | 149039 |
| 200000 | 170025 | 1709 | 209703 | 319511 |
| 500000 | 413793 | 3221 | 540120 | 823865 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 3354 | 329 | 2850 | 3824 |
| 2000 | 5367 | 427 | 4483 | 7474 |
| 5000 | 10244 | 471 | 7589 | 15990 |
| 10000 | 16057 | 613 | 14430 | 24078 |
| 20000 | 29249 | 861 | 26599 | 53323 |
| 50000 | 67215 | 1457 | 81012 | 187120 |
| 100000 | 126109 | 2119 | 218015 | 583012 |
| 200000 | 257997 | 3646 | 693207 | 1875911 |
| 500000 | 638135 | 7332 | 3574677 | 10346277 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2212 | 267 | 2250 | 3962 |
| 2000 | 3554 | 287 | 3797 | 10015 |
| 5000 | 6958 | 329 | 8462 | 44297 |
| 10000 | 10527 | 395 | 16498 | 131126 |
| 20000 | 18971 | 491 | 41816 | 150871 |
| 50000 | 44274 | 754 | 180711 | 514577 |
| 100000 | 82160 | 957 | 628961 | 1394642 |
| 200000 | 153596 | 1559 | 2340754 | 5339999 |
| 500000 | 406316 | 2646 | 13773496 | 26837548 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1472 | 269 | 1567 | 1732 |
| 2000 | 2330 | 324 | 2660 | 3680 |
| 5000 | 4926 | 404 | 6273 | 13084 |
| 10000 | 7515 | 459 | 13335 | 28348 |
| 20000 | 13516 | 505 | 35993 | 86357 |
| 50000 | 30594 | 670 | 171188 | 456331 |
| 100000 | 58733 | 971 | 666459 | 1716667 |
| 200000 | 115133 | 1784 | 2383477 | 6986407 |
| 500000 | 277220 | 2808 | 26491209 | 54353530 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1320 | 5 | 977 | 1058 |
| 2000 | 2187 | 12 | 1424 | 1635 |
| 5000 | 5056 | 13 | 3217 | 3939 |
| 10000 | 8060 | 19 | 6615 | 8217 |
| 20000 | 16688 | 33 | 13225 | 15484 |
| 50000 | 40474 | 61 | 32740 | 38316 |
| 100000 | 84237 | 100 | 65969 | 79878 |
| 200000 | 176677 | 219 | 184273 | 218316 |
| 500000 | 412787 | 1019 | 348702 | 407195 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2324 | 20 | 938 | 1245 |
| 2000 | 3260 | 39 | 1257 | 2283 |
| 5000 | 7016 | 72 | 2929 | 6108 |
| 10000 | 13494 | 137 | 5656 | 13126 |
| 20000 | 25183 | 261 | 12050 | 30302 |
| 50000 | 61741 | 567 | 29169 | 117938 |
| 100000 | 122005 | 1049 | 58685 | 394943 |
| 200000 | 250263 | 2241 | 118758 | 1453254 |
| 500000 | 613879 | 5415 | 293187 | 7542581 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1124 | 4 | 640 | 2034 |
| 2000 | 2122 | 8 | 1360 | 4731 |
| 5000 | 4335 | 9 | 2876 | 37794 |
| 10000 | 8395 | 14 | 5802 | 56715 |
| 20000 | 16621 | 31 | 10179 | 103396 |
| 50000 | 39454 | 60 | 25221 | 593536 |
| 100000 | 76385 | 84 | 50035 | 1462501 |
| 200000 | 155891 | 170 | 105117 | 2990621 |
| 500000 | 680402 | 378 | 438317 | 21181124 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 806 | 3 | 424 | 715 |
| 2000 | 1629 | 4 | 788 | 1591 |
| 5000 | 3013 | 10 | 1882 | 6244 |
| 10000 | 6033 | 15 | 3557 | 18733 |
| 20000 | 10851 | 18 | 7032 | 60424 |
| 50000 | 27968 | 32 | 19126 | 310546 |
| 100000 | 58389 | 64 | 41338 | 1081356 |
| 200000 | 116544 | 257 | 80634 | 4407783 |
| 500000 | 296800 | 497 | 203143 | 26909072 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1356 | 4 | 791 | 970 |
| 2000 | 2232 | 13 | 2042 | 2488 |
| 5000 | 4195 | 19 | 3251 | 4065 |
| 10000 | 7454 | 21 | 6414 | 7951 |
| 20000 | 20723 | 25 | 18556 | 20381 |
| 50000 | 37630 | 62 | 31941 | 37681 |
| 100000 | 79584 | 120 | 65103 | 75940 |
| 200000 | 158046 | 212 | 131501 | 160246 |
| 500000 | 462010 | 515 | 447930 | 416474 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2087 | 16 | 654 | 1150 |
| 2000 | 3613 | 42 | 1245 | 2374 |
| 5000 | 6525 | 76 | 2922 | 5934 |
| 10000 | 12877 | 173 | 5846 | 12888 |
| 20000 | 25958 | 286 | 11714 | 32497 |
| 50000 | 61604 | 563 | 28781 | 116607 |
| 100000 | 122788 | 1080 | 57296 | 368170 |
| 200000 | 237372 | 2001 | 109526 | 1330209 |
| 500000 | 598497 | 5056 | 286199 | 7009015 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1144 | 4 | 736 | 2539 |
| 2000 | 2313 | 8 | 1347 | 6457 |
| 5000 | 4725 | 12 | 3118 | 35963 |
| 10000 | 8986 | 16 | 5528 | 64561 |
| 20000 | 17244 | 25 | 11309 | 98772 |
| 50000 | 40057 | 40 | 27389 | 308409 |
| 100000 | 76050 | 64 | 52283 | 904024 |
| 200000 | 158971 | 136 | 104486 | 3263787 |
| 500000 | 401552 | 260 | 274256 | 16404632 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 802 | 5 | 447 | 725 |
| 2000 | 1430 | 10 | 761 | 1625 |
| 5000 | 2962 | 14 | 1796 | 6317 |
| 10000 | 5612 | 16 | 3538 | 18831 |
| 20000 | 11625 | 18 | 7212 | 60457 |
| 50000 | 27041 | 36 | 17647 | 317984 |
| 100000 | 57995 | 67 | 40528 | 1228630 |
| 200000 | 118198 | 129 | 81967 | 4296717 |
| 500000 | 291326 | 320 | 202372 | 27254448 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1182 | 24 | 1332 | 2096 |
| 2000 | 2186 | 28 | 2326 | 3729 |
| 5000 | 3994 | 34 | 5373 | 7672 |
| 10000 | 9729 | 45 | 10393 | 17336 |
| 20000 | 15456 | 88 | 19852 | 33132 |
| 50000 | 36829 | 183 | 50083 | 78464 |
| 100000 | 70941 | 396 | 97589 | 155536 |
| 200000 | 151731 | 638 | 209752 | 323955 |
| 500000 | 418229 | 2243 | 533016 | 832592 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 2247 | 71 | 1359 | 3310 |
| 2000 | 3400 | 104 | 2611 | 7532 |
| 5000 | 6552 | 156 | 5323 | 16118 |
| 10000 | 13101 | 287 | 11160 | 22235 |
| 20000 | 25568 | 418 | 24517 | 53358 |
| 50000 | 62852 | 756 | 80200 | 196963 |
| 100000 | 124192 | 1391 | 244591 | 631924 |
| 200000 | 241714 | 2809 | 764244 | 2118503 |
| 500000 | 634169 | 6883 | 3631567 | 10816927 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 1256 | 27 | 1222 | 3397 |
| 2000 | 2153 | 29 | 2256 | 9380 |
| 5000 | 4273 | 39 | 5883 | 52667 |
| 10000 | 7870 | 63 | 15413 | 112954 |
| 20000 | 16079 | 102 | 40846 | 259930 |
| 50000 | 40557 | 167 | 180533 | 600696 |
| 100000 | 78826 | 301 | 635869 | 1388995 |
| 200000 | 155351 | 702 | 2349685 | 5306286 |
| 500000 | 395865 | 2001 | 13892803 | 43731425 |
|
Executions |
Times for execution (ms) | |||
|---|---|---|---|---|
| Create | Read | Update | Delete | |
| 1000 | 758 | 27 | 1049 | 1543 |
| 2000 | 1598 | 40 | 1872 | 3820 |
| 5000 | 3280 | 74 | 4695 | 9953 |
| 10000 | 5881 | 86 | 12357 | 28440 |
| 20000 | 11124 | 135 | 35065 | 91662 |
| 50000 | 28863 | 235 | 179051 | 474297 |
| 100000 | 54690 | 584 | 662215 | 1883730 |
| 200000 | 115369 | 776 | 2440448 | 6909755 |
| 500000 | 298820 | 2026 | 26700590 | 53540998 |
|
Operation |
Current research | Previous research | ||||
|---|---|---|---|---|---|---|
| JPA | Hibernate | Spring Data JPA | JPA | Hibernate | Spring Data JPA | |
| Create | 39153 | 40688 | 40862 | 16463 | 16512 | 59629 |
| Read | 287 | 278 | 542 | 344 | 362 | 2252 |
| Update | 32834 | 31887 | 51424 | 16355 | 16276 | 75071 |
| Delete | 39249 | 40001 | 73632 | 12768 | 12857 | 79799 |
|
Operation |
Relational Database Management System | |||
|---|---|---|---|---|
| MySQL | Oracle | SQLServer | PostgreSQL | |
| Create | 43371 | 68977 | 42253 | 31839 |
| Read | 314 | 976 | 261 | 271 |
| Update | 33955 | 29537 | 27668 | 18924 |
| Delete | 42988 | 113404 | 381440 | 326854 |
|
Operation |
Relational Database Management System | |||
|---|---|---|---|---|
| MySQL | Oracle | SQLServer | PostgreSQL | |
| Create | 40688 | 65406 | 39076 | 29389 |
| Read | 278 | 878 | 218 | 202 |
| Update | 31887 | 28601 | 25955 | 17682 |
| Delete | 40001 | 112778 | 359862 | 314171 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
