When one or more of the All filters is selected - only average normalized results are displayed. Please read Running and Results for more details.
Comparison of JPA/Database speed - the averages (normalized score, higher is better)
  | Derby embedded | H2 embedded | HSQLDB embedded | SQLite embedded | DB4O embedded | ObjectDB embedded | Derby server | H2 server | MySQL server | PostgreSQL server | ObjectDB server |
---|---|---|---|---|---|---|---|---|---|---|---|
DataNucleus | 6.9 | 7.8 | 7.0 | 0.73 | 3.3 | 2.9 | 2.1 | 6.0 | |||
EclipseLink | 13.6 | 18.4 | 17.9 | 0.52 | 6.6 | 4.5 | 2.3 | 10.5 | |||
Hibernate | 8.3 | 11.0 | 13.9 | 0.62 | 5.6 | 3.4 | 2.7 | 9.1 | |||
OpenJPA | 7.4 | 9.5 | 9.7 | 4.2 | 3.0 | 2.8 | 6.5 | ||||
ObjectDB | 99.8 | 43.9 |
Performance comparison chart - The Y-Axis represents normalized score in logarithmic scale - higher is better:
Performance comparison chart - The Y-Axis represents normalized score in linear scale - higher is better:
Best and Worst JPA/Database Performer in this comparison
The Most Efficient (the Fastest):
1. | ObjectDB embedded | 99.8 |
2. | ObjectDB server | 43.9 |
3. | EclipseLink with H2 embedded | 18.4 |
4. | EclipseLink with HSQLDB embedded | 17.9 |
5. | Hibernate with HSQLDB embedded | 13.9 |
6. | EclipseLink with Derby embedded | 13.6 |
7. | Hibernate with H2 embedded | 11.0 |
8. | EclipseLink with PostgreSQL server | 10.5 |
9. | OpenJPA with HSQLDB embedded | 9.7 |
10. | OpenJPA with H2 embedded | 9.5 |
11. | Hibernate with PostgreSQL server | 9.1 |
12. | Hibernate with Derby embedded | 8.3 |
13. | DataNucleus with H2 embedded | 7.8 |
14. | OpenJPA with Derby embedded | 7.4 |
15. | DataNucleus with HSQLDB embedded | 7.0 |
16. | DataNucleus with Derby embedded | 6.9 |
17. | EclipseLink with Derby server | 6.6 |
The Least Efficient (the Slowest):
18. | OpenJPA with PostgreSQL server | 6.5 |
19. | DataNucleus with PostgreSQL server | 6.0 |
20. | Hibernate with Derby server | 5.6 |
21. | EclipseLink with H2 server | 4.5 |
22. | OpenJPA with Derby server | 4.2 |
23. | Hibernate with H2 server | 3.4 |
24. | DataNucleus with Derby server | 3.3 |
25. | OpenJPA with H2 server | 3.0 |
26. | DataNucleus with H2 server | 2.9 |
27. | OpenJPA with MySQL server | 2.8 |
28. | Hibernate with MySQL server | 2.7 |
29. | EclipseLink with MySQL server | 2.3 |
30. | DataNucleus with MySQL server | 2.1 |
31. | DataNucleus with DB4O embedded | 0.73 |
32. | Hibernate with SQLite embedded | 0.62 |
33. | EclipseLink with SQLite embedded | 0.52 |
Total number of failed test runs (out of 58 tests in total) in this page results
Notes: Failed test runs are not included in any average score calculation. Click on failure numbers to see exception stack traces.
The results above are averages of the following 58 concrete test results
- Basic Person Test - Persistence Operations - Few Entities (5/100)
- Basic Person Test - Persistence Operations - Many Entities (5000)
- Basic Person Test - Retrieval Operations - Few Entities (5/100)
- Basic Person Test - Retrieval Operations - Many Entities (5000)
- Basic Person Test - Query Operations - Few Entities (5/100)
- Basic Person Test - Query Operations - Many Entities (5000)
- Basic Person Test - Update Operations - Few Entities (5/100)
- Basic Person Test - Update Operations - Many Entities (5000)
- Basic Person Test - Removal Operations - Few Entities (5/100)
- Basic Person Test - Removal Operations - Many Entities (5000)
- Element Collection Test - Persistence Operations - Few Entities (5/100)
- Element Collection Test - Persistence Operations - Many Entities (5000)
- Element Collection Test - Retrieval Operations - Few Entities (5/100)
- Element Collection Test - Retrieval Operations - Many Entities (5000)
- Element Collection Test - Query Operations - Few Entities (5/100)
- Element Collection Test - Query Operations - Many Entities (5000)
- Element Collection Test - Update Operations - Few Entities (5/100)
- Element Collection Test - Update Operations - Many Entities (5000)
- Element Collection Test - Removal Operations - Few Entities (5/100)
- Element Collection Test - Removal Operations - Many Entities (5000)
- Inheritance Test - Persistence Operations - Few Entities (5/100)
- Inheritance Test - Persistence Operations - Many Entities (5000)
- Inheritance Test - Retrieval Operations - Few Entities (5/100)
- Inheritance Test - Retrieval Operations - Many Entities (5000)
- Inheritance Test - Query Operations - Few Entities (5/100)
- Inheritance Test - Query Operations - Many Entities (5000)
- Inheritance Test - Update Operations - Few Entities (5/100)
- Inheritance Test - Update Operations - Many Entities (5000)
- Inheritance Test - Removal Operations - Few Entities (5/100)
- Inheritance Test - Removal Operations - Many Entities (5000)
- Indexing Test - Persistence Operations - Few Entities (5/100)
- Indexing Test - Persistence Operations - Many Entities (5000)
- Indexing Test - Retrieval Operations - Few Entities (5/100)
- Indexing Test - Retrieval Operations - Many Entities (5000)
- Indexing Test - Query Operations - Few Entities (5/100)
- Indexing Test - Query Operations - Many Entities (5000)
- Indexing Test - Update Operations - Few Entities (5/100)
- Indexing Test - Update Operations - Many Entities (5000)
- Indexing Test - Removal Operations - Few Entities (5/100)
- Indexing Test - Removal Operations - Many Entities (5000)
- Graph (Binary Tree) Test - Persistence Operations - Few Entities (5/100)
- Graph (Binary Tree) Test - Persistence Operations - Many Entities (5000)
- Graph (Binary Tree) Test - Retrieval Operations - Few Entities (5/100)
- Graph (Binary Tree) Test - Retrieval Operations - Many Entities (5000)
- Graph (Binary Tree) Test - Update Operations - Few Entities (5/100)
- Graph (Binary Tree) Test - Update Operations - Many Entities (5000)
- Graph (Binary Tree) Test - Removal Operations - Few Entities (5/100)
- Graph (Binary Tree) Test - Removal Operations - Many Entities (5000)
- Multithreading Test - Persistence Operations - Few Entities (5/100)
- Multithreading Test - Persistence Operations - Many Entities (5000)
- Multithreading Test - Retrieval Operations - Few Entities (5/100)
- Multithreading Test - Retrieval Operations - Many Entities (5000)
- Multithreading Test - Query Operations - Few Entities (5/100)
- Multithreading Test - Query Operations - Many Entities (5000)
- Multithreading Test - Update Operations - Few Entities (5/100)
- Multithreading Test - Update Operations - Many Entities (5000)
- Multithreading Test - Removal Operations - Few Entities (5/100)
- Multithreading Test - Removal Operations - Many Entities (5000)