当我问这个问题时,我看到当前版本的H2数据库已于2011年7月1日(最近)发布。这非常好&健康。这种节奏会保持下去吗?如果新发布的速度很慢,那么它是否会得到开源社区的长期支持?
出于成本原因,我目前正在考虑将Postgresql用于高性能应用程序,H2数据库似乎具有正确的功能集(基本上我需要的任何东西)。我不确定使用H2是否是正确的决定。基本上我的决定应该基于订阅或社区的长期支持。
答案 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?
为什么它比SQLite更好?
与MySQL相比:
与PostgreSQL相比:
在提供技术支持时最容易处理。 只需拖放即可轻松共享。