H2 vs SQLite java swing,我应该使用哪一个?



我正在一个客户的项目中使用内存数据库,我使用H2,但是在谷歌搜索了每个人的大小限制后,我得到了H2的4TB和SQLite的281TB,经过更多的研究,我发现SQLite不是PostgreSQL的替代品,H2在我的情况下更好,因为它是一个用Java编写的免费SQL数据库。H2和SQLite数据库对我来说都很好,我唯一关心的是数据库大小限制我该用哪一个呢?

SQLite的创建者D. Richard Hipp解释说,该产品不是要成为一个大型的严肃的数据库服务器,而是要成为应用程序发明自己的文件格式的替代方案。引用:

" SQLite不是PostgreSQL的替代品。SQLite是fopen()的替代品

也就是说,SQLite是一款经过验证的、久经考验的、非常成功的产品。

你说:

很多人决定切换到SQLite,因为H2中的数据损坏

这是一个大胆的声明,如果你不能用一些证据来支持它,也是不负责任的。我建议你编辑你的问题,以避免成为一个八卦贩子,可能是诽谤。

H2数据库引擎是最流行的纯java数据库产品之一。

关于SQLite和H2的比较,最明显的考虑是SQLite是本机代码,而H2是纯Java。如果您可以控制部署机器,那么这可能不是问题。但是,如果你想发布一个Java应用程序,而不用担心绑定哪个数据库引擎的本机实现,那么H2将更方便。

其他比较点包括H2是一个更完整的SQL实现,具有比SQLite更多的数据库特性。其中最基本的是,H2具有丰富的数据类型,而SQLite只有很少的类型。H2提供了更多的关系特性。但是如果你不需要这些功能,SQLite也可以。

你说

:

大小限制为4GB

你是错误的:4tb (terabyte),而不是4gb (gigabyte)。

引用H2文档中的Limits and Limits部分:

数据库文件大小限制:4 TB(使用默认页面大小为2 KB)或更高(当使用较大的页面大小时)。此限制包括CLOB和BLOB数据。

文档提到了过时的FAT或FAT32文件系统的一个例外,因为这些系统被限制为4gb文件。

再次,我建议你修改你的问题,以消除这些谎言。

对于您的问题的目的,选择内存数据库产品,如果您部署到RAM低于4 TB的机器上,H2就足够了。

相关内容

最新更新