h2数据库有多可靠?

时间:2011-01-14 01:23:24

标签: h2

当我问这个问题时,我看到当前版本的H2数据库已于2011年7月1日(最近)发布。这非常好&健康。这种节奏会保持下去吗?如果新发布的速度很慢,那么它是否会得到开源社区的长期支持?

出于成本原因,我目前正在考虑将Postgresql用于高性能应用程序,H2数据库似乎具有正确的功能集(基本上我需要的任何东西)。我不确定使用H2是否是正确的决定。基本上我的决定应该基于订阅或社区的长期支持。

4 个答案:

答案 0 :(得分:33)

为了提供一些额外的信息,2010年我们为大型[r]企业数据库分片从H2转向MySQL。最大的原因是内部H2引擎是单线程的。当大型未经优化的查询在我们的数据库中以100或数百万行运行时,所有其他数据库操作都将停止。有关详细信息,请参阅H2 documentation。与MySQL或Postgres相比,H2的行锁定似乎相对不成熟。

此外,MySQL和Postgres还提供复制机制,而不是自己滚动。这也允许我们从奴隶“实时”备份我们的数据库系统,而不是在我们转储它时阻止H2数据库。

最后,虽然我没有运行此性能测试,但我怀疑虽然H2对于中小型数据库来说很快,但随着您增加数据库大小,特别是并发查询的数量,MySQL和Postgres将开始等于然后最好的整体表现 - 特别是查看查询时间分布。

我们继续非常成功地将H2用于精品店,内存和测试数据库。非常感谢托马斯!

答案 1 :(得分:32)

  

这种节奏会保持下去吗?

这就是计划。

  

它会得到开源社区的长期支持吗?

很难预测未来,我想这就是为什么没有人回答你的问题:-)我相信它会得到支持,因为有足够多的人使用它。 H2用于许多(开源和商业)产品中。很多人经常回复邮件列表中的问题。 H2目前没有很多提交者,原因之一是用户通常对其功能感到满意,并且因为当前的开发速度足够快且代码质量足够好。

目前尚未提供基于订阅的支持,但计划在未来使用(它始终是在某些时候提供商业支持的计划)。目前尚无法获得的原因是H2还没有足够的市场份额来创办公司。

答案 2 :(得分:22)

H2是一个了不起的数据库引擎。在我们解决了与H2无关的问题之后,我们从PostgreSQL和MySQL(两者仍然支持)切换到H2。 H2成为我们的主要数据库选择。

速度是主要原因,但还有其他原因:嵌入式模式令人惊叹并且让我们可以灵活地在便携式设备中安装软件,甚至可以在云端共享数据库,让我们说通过Dropbox!

我们不使用很多功能,因为我们通过“Datanucleus”(没有触发器,程序等)“持续依赖”,但我们的应用程序非常复杂,足以推动H2!它完美无缺。

答案 3 :(得分:0)

原因是H2仍继续表现出色。截至2019年,H2是一个了不起的数据库。四年以来,我们在所有独立应用程序中都使用了它,并且看到它最小化了SQLite和MySQL之间的差距。它的执行速度与MySQL相同或更快。

什么地方适合使用H2?

  • 独立应用程序
  • Intranet / LAN应用程序
  • 仅Java部署
  • 嵌入式以及服务器模式

为什么它比SQLite更好?

  • 数据类型多于SQLite。
  • 布尔数据类型支持。在SQLite中不可用。
  • 在特定情况下,当大约15列表的行数增加到50,000以上(或多或少)时,SQLite性能下降。我们没有发现H2的问题。它保持了正常运行。
  • 即使看起来像类似于SQLite的单个文件,H2也会被加密。它是多用户,受密码保护的数据库。该功能在SQLite中不可用。
  • 与您的应用程序打包在一起仅需2MB空间。
  • 具有内置的数据库管理控制台,该控制台也位于同一〜2MB之内。
  • H2可用于Android应用程序开发。

与MySQL相比:

  • 布尔数据类型支持。在MySQL中不可用。
  • 到目前为止,我们看到H2的性能几乎与MySQL相当。有时在执行更新查询时甚至表现不佳。
  • 我们的客户很高兴看到性能如此快的软件。
  • 在MySQL上使用它的原因是,目前它还可以在商业独立应用程序中免费使用。

与PostgreSQL相比:

  • 当按此答案开头指定的工作/部署环境时,它绝对比PostgreSQL快。
  • H2的更新操作比PostgreSQL快得多
  • 如果有人试图将H2与PostgreSQL进行全面比较,请不要这样做,而应将PostgreSQL与Giant OracleDB进行比较。不能将H2与PostgreSQL特性进行比较/不能用PostgreSQL来代替。

在提供技术支持时最容易处理。 只需拖放即可轻松共享。