Oracle和PostgreSQL之间的性能差异有多大?

11

我正在思考如何扩展数据库。当前使用的是PostgreSQL。尽管存在编码困难和费用,但切换到Oracle是否值得?还是采用PostgreSQL +更多机器的方法更好/更便宜?


3
我认为使用PostgreSQL会更便宜。 - miku
2
一条绳子有多长?涉及到太多因素,这里没有一个正确的答案。 - Oded
8
我不喜欢 Oracle。到目前为止,它给我带来的只是让我烦恼的麻烦。其他任何关系型数据库管理系统(如PostgreSQL、MSSQL、MySQL、FirebirdSQL)都没有让我遇到这么多问题。从客户端连接到存储过程返回游标,都让我头痛不已。 - Alex
1
哦,还要考虑增加RAM/查询缓存的数量,或者可能从硬盘转移到闪存存储。如果IO是瓶颈,这也可以提高性能(但需要付出代价)。这确实取决于工作负载。 - extraneon
3
由于Oracle不允许公开其他关系型数据库管理系统的基准测试结果,因此这个问题只能通过轶事来回答。 - rfusca
显示剩余2条评论
4个回答

16

专注于现有问题而不是创造大量有趣的新问题,这是一个值得赞扬的做法。 - APC
在全职使用Oracle和Postgres并运行类似负载之后,如果有区别的话,它只是感觉上没有太大的差异。+1不会开启全新的混乱。 - rfusca
请注意,Richard在此处提供的基准测试结果是使用PostgreSQL 8.2进行的;版本8.3与早期版本相比,在几乎所有方面都有非常大的性能提升。Oracle也可能有所改进,但现在PostgreSQL通常比8.2版本快30到50%。 - Greg Smith

5
如果你想升级PostgreSQL,我强烈建议你转向EnterpriseDB的Postgres Plus。他们创建了一个与Oracle兼容的PostgreSQL版本,可以运行所有现有代码和任何新的Oracle中心代码。它几乎拥有所有人们购买Oracle数据库管理系统的功能,并且速度非常快。如果你嫉妒RAC,请不要。RAC的维护成本非常昂贵,每增加一个新盒子效率也不高。你可以在PostgreSQL中获得额外的性能而无需支付成本。考虑使用PGPOOL作为水平增长的解决方案,而不需要花费太多成本。

PGPOOL不支持共享存储集群,而是基于数据复制。RAC实例可以共享数据存储。当您有多个TB的数据时,运行PGPOOL所需的复制可能在性能和存储成本方面非常昂贵。 - Andrew Henle

5
我认为你所建议的逻辑上等同于 永远不要做的事情,第一部分。这种转换实际上是重写,并且从一个数据库转换到另一个数据库(或从一种语言转换到另一种语言等)是浪费大量时间和金钱的好方法,而这些时间和金钱本可以用于真正改善产品。正如@Richard Harrison在上面所说,更好的选择是花些时间修复驱使你考虑迁移到Oracle的任何性能问题。正如Fred Brooks多年前所说,没有银弹

分享并享受。


-1

我必须承认,我在这方面有偏见,但是我必须告诉你PostgreSQL是一个惊人的产品!我承认我没有任何关于Oracle的直接经验,但是我所读过的一切都将PostgreSQL置于如此接近的范围内,即使它稍微慢一点,我毫不怀疑,花费在Oracle许可证上的任何金额,而不是投资于硬件或额外的开发时间(以提高性能),仍然会让您在美元和性能方面都更加领先。

当然,我像其他人一样指出,除非我们谈论特定的情况或安装环境,否则这个问题真的太主观了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接