H2 is first and foremost designed to be an embedded database. We use it in Nuxeo to provide an easy-to-use downloadable demo platform, but it should never be used in production.
- It has very bad concurrent behavior (writing a row locks the whole table, therefore deadlocks are much more frequent).
- Its full-text embedding (using Apache Lucene) is not really transactional.
- It has a poor query optimizer.