2010-01-26 129 views
8

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

谢谢!

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

+2

我的预测:正确调整PostgreSQL将吸引德比,但最琐碎的查询。为什么你想离开PostgreSQL?你花时间调整数据库吗? – intgr 2010-12-08 22:00:57

回答

3

还没有直接比较PostgreSQL的德比。然而,在不同的情况下,我发现德比是高度可靠的。但是,您需要关注Derby配置以确保它适合您的应用程序需求。

+1

+1。坚如磐石的可靠性,低内存占用空间和部署弹性(嵌入式,网络服务器,嵌入式+网络服务器)确实是其最大的优势。 – 2012-03-19 13:48:09

+0

我知道Postgresql是比较成熟的db。不过,我一直在使用Derby来处理重型数据库处理应用程序,并且似乎无法从性能,大小和可靠性角度找到任何限制。 – donlys 2016-12-12 17:08:45

1

有许多性能测试套件作为Derby源代码分发本身的一部分包含在内;他们被德比开发人员用来进行他们自己的德比性能测试。所以如果你需要性能测试的例子,或者想要更多的例子,你可以考虑使用这些。在Derby源代码分发中查找名为java/testing/org/apache/derbyTesting/perf的子目录。

6

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

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

随时随地在任何平台上随时随地都有一个DB服务器,对我来说只是天堂!

13

我知道我在这里发布答案的时间已晚,但我想确保将来没有人会因使用Derby而超过任何生产质量的数据库。我很抱歉提出这个答案有多么负面 - 我试图在一个简短的答案中捕捉整个工程团队的不愉快感受。

我们在许多小型客户部署中使用Derby的经验使我们严重怀疑它对除测试环境之外的其他任何东西是多么有用。有些问题我们有:由锁升级

  • 死锁 - 这是最大的一个,并恰好一个客户大约每隔两个星期
  • 中断的I/O的原因德比以彻底失败在Solaris(可能无法在其他平台问题) - 我们必须建立一个垫片,以保护其免受这些故障
  • 无法处理它的MySQL/PostgreSQL的会轻松
  • 处理复杂查询
  • 巴吉事务日志执行造成表损坏这需要我们导出数据库,然后重新导入它(不能只删除损坏的表),我们仍然失去了在这个过程中表 - 谢天谢地我们有一个备份
  • 没有LIMIT语法
  • 对于复杂查询低性能
  • 用于大型数据集

由于这一事实,低性能,它的嵌入式,德比与SQLite相比,它更像是PostgreSQL,它是一个非常成熟的生产质量数据库,用于存储世界上一些最大的网站的PB级数据集。如果你想为增长做好准备,并且不想被调试别人的数据库代码,我建议不要使用Derby。我对SQLite没有任何经验,但我无法想象它比Derby对我们的可靠性仍然不如以前那么受欢迎。

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