我最近正在考虑制作一个使用h2数据库作为主数据库的应用程序(因为它带有JBoss),但我有点担心。我在一些地方(主要是讨论板)读过,不应该在生产中使用h2。有具体原因吗?
答案 0 :(得分:25)
不使用H2(或HSQLDB或Derby)进行生产的主要原因是:
关键错误的可能性:与“大”数据库相比,Oracle,IBM DB 2,MS SQL Server,MySQL,PostgreSQL,Java数据库相对较新,因此可能不那么稳定(有bug)。请注意,所有较新的产品都适用,包括NoSQL数据库和“大”数据库的新版本。通常,测试产品越多,错误的概率就越小。当然,这取决于你的用例是否有意义支付(可能是很多钱)这个优势。在任何情况下,您都需要备份数据,以防万一发生硬件故障。
缺少功能和优化:“大”数据库具有针对特殊用例的更多功能和优化。您是否需要这些功能取决于您。
商业支持:更容易获得对更大数据库的支持。请注意commercial support is available for H2。 HSQLDB还提供商业支持。 IBM曾经为Apache Derby(以及IBM Cloudscape)提供支持,但我相信它们已经停止了。
答案 1 :(得分:9)
根据我的个人经验,H2版本1.2.147似乎非常可靠,大约60次安装100%成功,但我的客户只有相对较小的数据库(400 MB是更大的尺寸),我的程序只使用一个连接(lol ),直到最近我才开始使用多个连接但使用multi_threaded false。我有一些以前的版本损坏了,我很害怕尝试更新的版本。
答案 2 :(得分:3)
对我来说,没有人不会在中型项目的生产中使用H2DB。我们使用H2DB为大约15个客户端部署了一个生产系统,我们经历了非常简单的安装和备份,而且数据库没有任何问题。