是否有任何理由不在生产中使用h2数据库?

bje*_*ski 21 database jboss h2

我最近正在考虑制作一个使用h2数据库作为主数据库的应用程序(因为它带有JBoss),但我有点担心.我在一些地方(主要是讨论板)读过,不应该在生产中使用h2.有具体原因吗?

Tho*_*ler 25

不使用H2(或HSQLDB或Derby)进行生产的主要原因是:

  • 关键错误的可能性:与"大"数据库相比,Oracle,IBM DB 2,MS SQL Server,MySQL,PostgreSQL,Java数据库相对较新,因此可能不那么稳定(有bug).请注意,所有较新的产品(包括NoSQL数据库)和"大"数据库的新版本都适用.通常,测试产品越多,错误的概率就越小.当然,这取决于你的用例是否有意义支付(可能是很多钱)这个优势.在任何情况下,您都需要备份数据,以防万一出现硬件故障.

  • 缺少功能和优化:"大"数据库具有针对特殊用例的更多功能和优化.您是否需要这些功能取决于您自己.

  • 商业支持:更容易获得对更大数据库的支持.请注意,H2也提供商业支持.HSQLDB还提供商业支持.IBM曾经为Apache Derby(以及IBM Cloudscape)提供支持,但我相信它们已经停止了.

  • 你的职位在2年后发展了吗? (7认同)
  • 让我继承传统.5年后,您是否仍然认为不能推荐中型项目的服务器模式H2(总计高达10亿条记录)? (6认同)
  • 当然,H2(以及HSQLDB和Derby)在过去的5年中确实得到了改进并且变得更加稳定,并且对于更多的用例而言"足够好".但是,其他数据库仍然更稳定/具有更多功能. (6认同)
  • 不,我认为情况仍然相同. (5认同)
  • 这取决于用例.如果您想使用H2作为Oracle数据库的替代品(例如),情况并没有太大变化.但是如果你想在嵌入模式下使用它,或者你只是想使用MVStore,那么使用H2可能是有意义的. (3认同)
  • 你的职位3年后改变了吗?:D(考虑到新的MVStore?) (2认同)

小智 9

根据我的个人经验,H2版本1.2.147似乎非常可靠,在大约60次安装中100%成功,但我的客户只有相对较小的数据库(400 MB是较大的大小)而我的程序只使用一个连接(lol),仅最近我开始使用多个连接但是使用multi_threaded false.我有一些以前版本的损坏,我很害怕尝试更新的版本.

  • 当你说你只使用一个连接时 - 你是说只有一个用户访问数据库,还是相当于将它部署在JBoss和JBoss上进行管理? (2认同)

小智 6

对我来说,没有理由不在中型项目的生产中使用 H2DB。我们为大约 15 个客户部署了一个生产系统,所有客户都使用 H2DB,我们经历了非常简单的安装和备份,但数据库问题为零。