Derby vs PostgreSql性能比较

Aus*_*tin 11 postgresql glassfish derby

我们现在正在研究是否将postgresql数据库切换到嵌入式Derby数据库.两者都将使用glassfish 3作为我们的数据层.任何人都有任何可以帮助我们决定的意见或知识吗?

谢谢!

编辑:我们现在正在编写一些性能测试.根据经验/第一手知识寻找更多答案

Dan*_*Dan 14

我知道我在这里发布一个答案的时间已经很晚了,但是我想确保没有人在未来使用Derby而不是任何生产质量的数据库.我提前道歉这个答案是多么消极 - 我试图通过一个简短的问答答案来捕捉整个工程团队的不良情绪.

我们在许多小型客户部署中使用Derby的经验使我们严重怀疑它对于除测试环境之外的任何其他方面的用处.我们遇到的一些问题:

  • 锁定升级造成的死锁 - 这是最大的一个,每一周或两周发生一次客户
  • 中断的I/O导致Derby在Solaris上彻底失败(在其他平台上可能不是问题) - 我们必须构建一个垫片来保护它免受这些故障的影响
  • 无法处理MySQL/PostgreSQL轻松处理的复杂查询
  • Buggy事务日志实现导致表损坏,这需要我们导出数据库然后重新导入它(不能只删除损坏的表),我们仍然在这个过程中丢失了表 - 谢天谢地,我们有一个备份
  • 没有LIMIT语法
  • 复杂查询的性能低下
  • 大型数据集的低性能

由于它是嵌入式的,因此Derby更像是SQLite的竞争对手而不是PostgreSQL,后者是一个非常成熟的生产质量数据库,用于存储世界上一些最大的网站的多PB数据集.如果你想为增长做好准备并且不想被调试别人的数据库代码,我建议你不要使用Derby.我对SQLite没有任何经验,但是我无法想象它比Derby对我们的可靠性低得多,并且仍然像它一样受欢迎.

事实上,我们现在正在移植到PostgreSQL.

  • 这个评论似乎很偏颇。我一点都没有这样的经验。我将它用作生产数据库已有好几年了,没有提到任何问题。但是后来我的经历也产生了偏见。随心所欲。此外,Derby还为LIMIT实现了SQL ISO标准:https://en.wikipedia.org/wiki/Select_(SQL)#FETCH_FIRST_clause (2认同)

小智 6

Derby的性能仍然相对较慢,但是......你的Java应用程序在数据库服务器上运行的时候,完全独立于平台.您甚至不需要考虑安装将Java应用程序复制到的数据库服务器.

我在MySQL中使用MySQL,但是在我的Java应用程序中嵌入数据库服务器的嵌入式实现只是令人惊叹且前所未有的生产力,自由度和灵活性.

无论何时何地在任何平台上随身携带数据库服务器都只是天堂!


dan*_*tat 1

H2 数据库网站的一些统计数据如下: http: //www.h2database.com/html/performance.html