HSQLDB Pure Java Database

HSQLDB Performance Summary

The following charts show the performance of HSQLDB (in green) relatively to other JPA/DBMS combinations (in gray).

Position #1 on the X-Axis (the fastest) is about 100 times faster than position #32 (the slowest).
In the chart below the Y-Axis represents result score (maximum 100) in logarithmic scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB
In the chart below the Y-Axis represents result score (maximum 100) in linear scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB


The configurations in which HSQLDB has been tested are listed in the following table:

 Database + JPA ProviderNormalized Score
100 - Best,  0 - Worst
Final Position
1 - Best,  32 - Worst
Failed Tests
1Hibernate with HSQLDB embedded15.13  (out of 32)6
2EclipseLink with HSQLDB embedded6.113  (out of 32)42
3OpenJPA with HSQLDB embedded5.914  (out of 32)10
4DataNucleus with HSQLDB embedded4.419  (out of 32)3

As shown above, the performance and stability are highly dependent on the JPA provider. HSQLDB is much faster when used with Hibernate than with any other JPA implementation. The combination of HSQLDB with EclipseLink seems less stable and results in too many exceptions.

About HSQLDB Database

HSQLDB (Hyper Structured Query Language Database) is a popular pure Java RDBMS.

The first version of HSQLDB was released in 2001, based on the discontinued HypersonicSQL database engine.

HSQLDB is available under the BSD open source license.

In this benchmark HSQLDB version 2.0 has been tested. Cached tables have been used, since the default memory tables are mainly for small databases (even if the RAM is large enough to hold the entire database - opening and closing a large database with memory tables is very slow).

The HSQLDB database can be used in client-server and embedded modes. Only the embedded mode has been tested in this benchmark due to some difficulties in using JPA against the HSQLDB 2.0 database server.