The reason is H2 has still continued outperforming. As of 2019, H2 is a superb database. We use it in all of our standalone applications since 4 years and we see it minimizes a gap between SQLite and MySQL. It performs as fast as or faster than MySQL.
Where H2 is suitable?
- Standalone applications
- Intranet/LAN applications
- Java only Deployments
- Embedded as well as Server Mode
Why is it better than SQLite?
- More data types than SQLite.
- Boolean datatype support. Which is not available in SQLite.
- SQLite performance went down in a specific case when number of rows increases above 50,000 for around 15 column table (more or less). We did not find that issue with H2. It kept performing as usual.
- Even if it appears like single file similar to SQLite, H2 is encrypted. It is multi-user, password-protected database. This feature is not available in SQLite.
- Packaging it with you application costs just ~2MB space.
- Has inbuilt database management console, that also in the same ~2MB.
- H2 can be used for Android application development.
Comparing with MySQL:
- Boolean datatype support. Which is not available in MySQL.
- As of now we see, H2 performs almost equal to MySQL. Sometimes even outperforms when executing update queries.
- Our customers are happy to see a software that performs so fast.
- The reason to use it over MySQL is, currently it can be used for free in commercial standalone applications also.
Check
Constraint support, which was not available in MySQL until recently.
Comparing with PostgreSQL:
- Absolutely it is faster than PostgreSQL when the work/deployment environment is as specified at the start of this answer.
- Update operations with H2 are so much faster than PostgreSQL
- If somebody tries to compare H2 with PostgreSQL thoroughly, please do not do it, rather compare PostgreSQL with Giant OracleDB. H2 can not be compared with / can not be replaced with PostgreSQL featurewise.
It is most easier to handle while providing technical support.
It can be shared as easy as drag and drop.