Derby与PostgreSql性能比较

Derby与PostgreSql性能比较,postgresql,glassfish,derby,Postgresql,Glassfish,Derby,我们正在研究是否将postgresql数据库切换到嵌入式Derby数据库。两者都将使用GlassFish3作为我们的数据层。有人有任何意见或知识可以帮助我们做出决定吗 谢谢 编辑:我们正在自己编写一些性能测试。根据经验/第一手知识寻找更多答案以下是H2数据库站点的一些统计数据: 没有直接将Postgresql与Derby进行比较。然而,在不同的情况下使用了这两种方法,我发现Derby非常可靠。但是,您需要注意Derby配置,以确保它适合您的应用程序需要 Derby源代码发行版本身包含了许多性能测

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

谢谢


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

以下是H2数据库站点的一些统计数据:
没有直接将Postgresql与Derby进行比较。然而,在不同的情况下使用了这两种方法,我发现Derby非常可靠。但是,您需要注意Derby配置,以确保它适合您的应用程序需要

Derby源代码发行版本身包含了许多性能测试套件;Derby开发人员使用它们进行自己的Derby性能测试。所以,如果你需要性能测试的例子,或者想要额外的测试,你可以考虑使用这些测试。查看Derby源代码发行版中名为java/testing/org/apache/derbyTesting/perf的子目录。

当查看H2数据库统计站点时,值得阅读与H2结论相比有利于Derby的后续讨论

德比在性能上仍然相对缓慢,但是。。。无论Java应用程序运行到哪里,数据库服务器都是完全独立于平台的。您甚至不需要考虑在Java应用程序被复制到的地方安装DB服务器

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


无论何时何地,在任何平台上,总是包含一个DB服务器对我来说都是天堂

我知道我在这里发布答案已经晚了,但我想确保今后没有人会在任何生产质量数据库上使用Derby。我为这个答案的否定性提前道歉——我试图在一个简短的问答中捕捉整个工程团队的不良情绪

我们在许多小型客户部署中使用Derby的经验使我们严重怀疑它对于测试环境以外的任何东西有多有用。我们遇到了一些问题:

  • 锁升级导致的死锁-这是最大的死锁,大约每一两周发生在一个客户身上
  • 中断的I/O导致Derby在Solaris上彻底失败(在其他平台上可能不是问题)——我们必须构建一个垫片来保护它不受这些失败的影响
  • 无法处理MySQL/PostgreSQL可以轻松处理的复杂查询
  • 错误的事务日志实现导致了表损坏,这要求我们导出数据库,然后重新导入它(不能只是删除损坏的表),而且我们在这个过程中仍然丢失了表-谢天谢地,我们有备份
  • 限制
    语法
  • 复杂查询的低性能
  • 大型数据集的低性能
由于它是嵌入式的,Derby比PostgreSQL更像是SQLite的竞争对手,PostgreSQL是一个非常成熟的生产质量数据库,世界上一些最大的网站使用它来存储多PB的数据集。如果您想为增长做好准备,并且不想被发现调试其他人的数据库代码,我建议不要使用Derby。我对SQLite没有任何经验,但我无法想象它的可靠性会比Derby低很多,并且仍然像现在一样受欢迎


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

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

我的预测:经过适当调优的PostgreSQL除了最琐碎的查询之外,将完全冒烟。你为什么要离开PostgreSQL?您是否花时间正确调整数据库?+1。坚如磐石的可靠性、低内存占用和部署弹性(嵌入式、网络服务器、嵌入式+网络服务器)确实是其最大的优势。我知道Postgresql更成熟。然而,我一直在使用Derby作为一个重型数据库处理应用程序,从性能、大小和可靠性的角度看,我似乎找不到任何限制。我根本没有这样的经历。我把它作为一个生产数据库使用了好几年,没有任何提到的问题。但我的经验也是有偏见的。你想怎么做就怎么做。此外,Derby实现了限制的SQL ISO标准:这与问题..有什么关系。。?