I am recently considering making an application that uses h2 database as its main database (because it comes with JBoss), but I am bit worried about that. I have read in a few places (discussion boards mainly) that one should not use h2 in production. Are there specific reasons for that?
相关问题
- NOT DISTINCT query in mySQL
- Flush single app django 1.9
- keeping one connection to DB or opening closing pe
- H2 database: clustered indexes support
- Mysql-installer showing error : Memoy could not be
相关文章
- 小型数据库(SQLite,Derby,H2)可以存储多少数据?
- Intermittent “sslv3 alert handshake failure” under
- Connection pooling vs persist connection mysqli
- Speed up sqlFetch()
- How Do I Seed My Database in the setupBeforeClass
- I set a MySQL column to “NOT NULL” but still I can
- Where in Django can I run startup code that requir
- Google OAuth 2.0 User id datatype for MYSQL
The main reasons not to use H2 (or HSQLDB, or Derby) for production are:
Probability of critical bugs: compared to the 'big' databases Oracle, IBM DB 2, MS SQL Server, MySQL, PostgreSQL, the Java databases are relatively new and therefore possibly not as stable (have bugs). Please note this is true for all newer products, including NoSQL databases, and new releases of the 'big' databases. Generally, the more a product is tested, the less the probability of bugs. Of course it depends on your use case whether it makes sense to pay (possibly a lot of money) for this advantage. In any case you will need to backup the data, in case of hardware failure for example.
Missing features and optimizations: the 'big' databases have more features and optimizations for special use cases. Whether or not you need those features is up to you.
Commercial support: it's easier to get support for bigger databases. Please note commercial support is available for H2 as well. HSQLDB also provides commercial support. IBM used to provide support for Apache Derby (well, IBM Cloudscape), but I believe they stopped.
In my personal experience, H2 version 1.2.147 seems very reliable, 100% sucess in about 60 installations, but my clients only have relatively small databases(400 MB are the bigger sizes) and my program uses only one connection(lol), only recently I started to use more than one connection but with multi_threaded false. I had corruptions with some previous versions and I am scared to try newer versions yet.
For me me there is no reaseon not to use H2DB in production for mid sized projects. We deployed a production system for about fifteen clients all using H2DB, we experienced very easy installations and backups and yet zero problems regarding the database.