Hos*_*Aly 97 java database comparison embedded-database
我打算开发一个小型(Java)应用程序来管理我的财务状况.我相信我需要使用嵌入式数据库,但我对此问题没有经验.我试着看一些可用的产品,但我无法决定哪一种更适合我.H2,HSQLDB,Derby和Berkeley DB似乎都是不错的候选者,但我仍然看不出他们如何相互比较.感谢您帮助我们比较它们并帮助我决定使用哪一个.
我打算在我的应用程序中使用Hibernate(除非你建议使用DBMS提供的API),但我也希望能够使用SQL浏览工具(修改模式和更改数据)轻松编辑数据库.
谢谢.
Sve*_*hal 57
或
要么
您使用哪一个取决于您,具体取决于您需要多少性能和多少稳定性.
H2的开发人员提出了一个很好的性能评估:http:
//www.h2database.com/html/performance.html
Chr*_*ail 35
我使用Apache Derby几乎满足了我所有的嵌入式数据库需求.您也可以使用基于Derby的Sun的Java DB,但最新版本的Derby更新.它支持许多商业本机数据库支持的选项,但是更小,更容易嵌入.我有一些数据库表,超过一百万条记录没有问题.
大约3年前我曾经使用过HSQLDB和Hypersonic.它当时有一些主要的性能问题,由于这些问题,我从它切换到Derby.即使在Apache的孵化器中,Derby也很稳固.
Roh*_*rwa 28
我需要在我的一个项目中使用Java嵌入式数据库,我做了很多研究,了解每个数据库的优缺点.我写了一篇博客,列出了流行的嵌入式java数据库(H2,HSQLDB,Derby,ObjectDB,Neo4j,OrientDB)的优缺点,你可以看看它.我选择了H2,因为我认为它最符合我的要求.博客链接:http://sayrohan.blogspot.in/2012/12/choosing-light-weight-java-database.html 希望它有所帮助!
Woo*_*kai 14
HSQLDB是一个很好的候选者(事实上它在OpenOffice中使用可能会让你们相信),但对于这样一个小型的个人应用程序,为什么不使用对象数据库(而不是经典的关系数据库)呢?
我在我的一个项目中使用过DB4O,我对此非常满意.面向对象,你不需要整个Hibernate层,可以直接插入/更新/删除/查询对象!而且,你不需要担心架构,你直接使用对象,DB4O做其余的事情!
我同意可能需要一些时间来习惯这种新型数据库,但请查看DB40教程,了解它如何轻松地使用数据库!
编辑:正如评论中所说,DB4O自动处理新版本的类.此外,还可以在此处找到用于浏览和更新应用程序外部数据库的工具:http://code.google.com/p/db4o-om/
我们在生产中使用HSQLDB作为我们应用程序的"无配置"选项.它允许人们在没有设置真实数据库的麻烦的情况下进行试用.
但是我们不支持正常使用.原因有几个:
对于至少(2)和(3),有很多方法,但它很难; 安装MySQL要容易得多.
大多数事情已经说过了,但我可以补充一点,我已经在我的一些宠物项目中使用了 HSQL、Derby 和 Berkely DB,它们都运行良好。所以我认为说实话并不重要。值得一提的是,HSQL 将自己保存为带有 SQL 语句的文本文件,这非常好。使您在开发时可以非常轻松地快速进行测试和设置数据。如果需要,还可以进行快速编辑。猜猜如果您还需要更改,您可以轻松地将所有这些传输到任何数据库:)
HSQLDB 可能会导致大型应用程序出现问题,它不是那么稳定。
我听过的最好的(不是第一手经验)是berkleyDB。但是,除非您将其开源,否则由于许可,它会花费您一条胳膊和一条腿……请参阅此http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html详情。
附:如果您不知道,berkleyDB 不是关系数据库。