Derby vs PostgreSql性能比较

时间:2010-01-26 18:00:30

标签: postgresql glassfish derby

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

谢谢!

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

7 个答案:

答案 0 :(得分:14)

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

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

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

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

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

答案 1 :(得分:6)

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

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

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

答案 2 :(得分:3)

没有直接将Postgresql与Derby进行比较。但是,在不同的情况下使用它们,我发现Derby非常可靠。但是,您需要注意Derby配置,以确保它适合您的应用程序需求。

答案 3 :(得分:3)

在查看H2数据库统计网站时,与H2结论相比,值得阅读有利于Derby的后续讨论。 http://groups.google.com/group/h2-database/browse_thread/thread/55a7558563248148?pli=1

答案 4 :(得分:1)

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

答案 5 :(得分:1)

有许多性能测试套件作为Derby源代码分发本身的一部分包含在内; Derby开发人员使用它们进行自己的Derby性能测试。因此,如果您需要性能测试的示例,或者想要其他测试,您可以考虑使用它们。查看Derby源代码分发中名为java / testing / org / apache / derbyTesting / perf的子目录。

答案 6 :(得分:0)

我不确定您的意思是嵌入了 Derby。当然这是一个选项,但您也可以将其安装为单独的服务器。