h2数据库有多可靠?

Mut*_*thu 34 h2

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

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

Gra*_*ray 35

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

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

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

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


Tho*_*ler 33

这种节奏会保持下去吗?

那就是计划.

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

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

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


mar*_*pes 23

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

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

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

  • 所以你建议H2更多地替代SQLite而不是其他任何东西? (3认同)
  • 我会说这是准确的:http://database-management-systems.findthebest.com/compare/16-53/H2-vs-SQLite (2认同)

小智 8

原因是 H2 仍然继续跑赢大盘。截至 2019 年,H2 是一个极好的数据库。4 年来,我们在所有独立应用程序中使用它,我们看到它最大限度地减少了 SQLite 和 MySQL 之间的差距。它的执行速度与 MySQL 一样快或比 MySQL 快。

H2 适合哪里?

  • 独立应用
  • 内网/局域网应用
  • 仅 Java 部署
  • 嵌入式和服务器模式

为什么它比 SQLite 更好?

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

与 MySQL 比较:

  • 布尔数据类型支持。这在 MySQL 中不可用。
  • 目前我们看到,H2 的性能几乎与 MySQL 相当。有时甚至在执行更新查询时表现更好。
  • 我们的客户很高兴看到运行速度如此之快的软件。
  • 在 MySQL 上使用它的原因是,目前它也可以在商业独立应用程序中免费使用。
  • Check 约束支持,直到最近才在 MySQL 中可用。

与 PostgreSQL 比较:

  • 当工作/部署环境如本答案开头所指定时,它绝对比 PostgreSQL 快。
  • 使用 H2 的更新操作比 PostgreSQL 快得多
  • 如果有人试图将H2与PostgreSQL进行彻底的比较,请不要这样做,而是将PostgreSQL与Giant OracleDB进行比较。H2 不能与 PostgreSQL 相比 / 不能被 PostgreSQL 替代。

在提供技术支持的同时最容易处理。它可以像拖放一样简单地共享。