前言
为什么要花10万美元买5000美元就能实现的东西呢? 这是主要问题。
Oracle是数据库管理系统领域的一个长期巨头,它提供了一个功能丰富的平台,但价格高昂,通常是为了迎合预算庞大的大型企业。另一方面,PostgreSQL是开源的,拥有自由的许可和零许可费用。由于其可靠性、可伸缩性、性能和易用性,它的受欢迎程度显著提高。
下图是根据Stackoverflow的年度开发者调查得出的5年来PostgreSQL和Oracle的流行程度。
让我们从选择使用PostgreSQL处理关键数据的5个家喻户晓的名字开始:
Instagram
Instagram对PostgreSQL的使用在其早期,特别是在其快速增长阶段就得到了强调。工程师们讨论了PostgreSQL如何在关键的扩展时刻支持他们的需求。
想深入了解的话,可以读一读:
https://read.engineerscodex.com/p/how-instagram-scaled-to-14-million
Spotify
Spotify的工程团队分享了他们在关键后端服务中使用PostgreSQL的见解。他们利用PostgreSQL的灵活性和性能来管理大量的用户数据和播放列表信息。
进一步了解,可以参考:https://engineering.atspotify.com/2013/02/in-praise-of-boring-technology/
万事达卡
有些东西是金钱买不到的;在PostgreSQL的帮助下,还有万事达卡。可以理解,万事达卡有极端的正常运行时间要求,至少有5个9个可用性。这是在逻辑复制和多主架构的帮助下实现的。
进一步了解,可以参考:https://www.enterprisedb.com/resources/customer-story/why-mastercards-secret-zero-downtime-is-postgres
IMDB
互联网电影数据库自1990年以来一直存在,目前包含近600万部电影和超过1亿个条目。但它也是一个巨大的人们评价和讨论电影的社区。这是一个巨大的数据量,其中很多都是在PostgreSQL中处理的。
进一步了解,可以参考:https://learnsql.com/blog/companies-that-use-postgresql-in-business/#imdb
宝马
BMW利用PostgreSQL来管理制造流程、供应链数据和以客户为中心的运营。凭借PostgreSQL的高可用性和强大的故障转移功能,BMW确保其关键系统保持可靠和高性能。
进一步了解,可以参考: https://www.cybertec-postgresql.com/en/postgresql-overview/solutions-who-uses-postgresql/
现在让我们来看看PostgreSQL是如何在比Oracle更具财务可行性的情况下满足现代企业的需求的。我们将讨论以下主题:
成本 可靠性 可伸缩性 表演 安全 可扩展性 支持 血统
1、成本: 在不确定的经济条件下控制开支
PostgreSQL和Oracle之间最显著的区别之一在于它们的成本结构。虽然PostgreSQL是开源的,可以免费使用,但Oracle采用的是商业许可模式,通常需要大量的前期投资和经常性成本。
上边Oracle的价格,参考的是:https://www.oracle.com/a/ocom/docs/corporate/pricing/technology-price-list-070617.pdf
前期成本:
PostgreSQL是完全免费的——没有许可费用,没有强制性的支持费用,也没有供应商锁定。这是一个显著的优势,特别是在经济不确定的时期,企业需要控制其成本。另一方面,Oracle需要昂贵的基于用户、处理器或实例数量的许可证,这些许可证可能很快就会增加到令人望而却步的数字,特别是当组织需要扩展时。
TCO:总拥有成本:
当考虑总拥有成本时,PostgreSQL全面优于Oracle。甲骨文的授权费用只是开始——维护、升级和支持会增加更多的成本。PostgreSQL是开源的,没有许可成本,并且在支持方面提供了灵活性。组织可以从一系列供应商中进行选择,而不必被锁定在一个供应商中。
长期财务影响
随着时间的推移,选择PostgreSQL可以大大节省成本。没有了与甲骨文相关的巨额年费,企业可以将资源重新分配到开发、创新或客户体验等其他领域。此外,PostgreSQL的灵活性和可扩展性允许公司构建他们需要的精确解决方案,而无需额外购买昂贵的Oracle模块。
甲骨文生态系统中的隐性成本
甲骨文的生态系统因隐性成本而臭名昭著。附加组件、扩展和附加服务很容易增加您的数据库预算。相比之下,PostgreSQL免费提供了大量强大的扩展。无论您是需要地理信息系统(GIS)功能,时间序列数据管理还是全文搜索,PostgreSQL的开源模型都可以提供高级功能,而无需花费大量资金。
2、可靠性:稳定性和经过验证的血统
在选择DBMS时,可靠性是一个关键的考虑因素,特别是对于任务关键型应用程序。PostgreSQL和Oracle都有很长的稳定发布历史,但PostgreSQL的开发模型提供了独特的优势。
久经考验的成熟
自1986年以来,PostgreSQL一直处于活跃的开发状态,其代码库一直在全球贡献者社区中不断改进。其结果是一个健壮、稳定并能够处理高风险部署的数据库系统。甲骨文也有着悠久的历史。然而,有时,它的专有性质意味着公司战略要求更新和改进,而不是用户需求。
关键任务部署
PostgreSQL已经证明了它在各行业关键任务部署中的可靠性。从每天处理数百万笔交易的金融机构到管理敏感数据的政府机构,PostgreSQL的ACID合规性确保了数据的完整性和一致性。虽然Oracle经常在类似的环境中使用,但PostgreSQL在没有成本负担的情况下提供了相当的可靠性。
数据完整性和ACID遵从性
这两个数据库都完全兼容ACID,但PostgreSQL对稳定性的承诺和“第一次就把它做好”的理念使它成为无法承受停机或数据损坏的企业的可靠选择。PostgreSQL的事务控制、一致性和容错性即使不优于Oracle,也与Oracle不相上下。
3、可伸缩性:随着业务的增长处理数据的增长
随着业务的增长,他们的数据需求也在增长。无缝扩展的能力对于任何DBMS来说都是必不可少的,PostgreSQL和Oracle都有内置的特性以及支持可伸缩性的生态系统工具。然而,PostgreSQL的开放架构使它在许多场景中具有优势。
水平和垂直缩放
PostgreSQL支持垂直扩展(向单个服务器添加更多资源)和水平扩展(添加更多服务器来分配负载)。它具有本地复制功能,并通过内置特性和扩展支持分片。虽然Oracle提供了类似的功能,但实现和维护这些解决方案的成本通常很高,包括昂贵的集群选项和高级功能的额外费用。
分布式体系结构
在一个分布式数据库正成为常态的世界里,PostgreSQL处于有利地位。通过逻辑复制、外部数据包装器(fdw)和高级分区等特性,PostgreSQL可以轻松处理地理上分布的数据,同时保持一致性和性能。Oracle也支持分布式系统,但通常需要大量的财务和技术投资才能有效地做到这一点。
4、性能:高效管理高速数据
性能是评估数据库时的一个关键指标。虽然Oracle通常被认为是高性能应用程序的首选,但PostgreSQL已经取得了重大进展,现在在许多场景中被认为与Oracle相当,甚至优于Oracle。
查询优化
PostgreSQL的查询规划器和优化器旨在有效地处理复杂的查询。数据库引擎分析并选择最有效的执行计划,使其即使在大型数据集上也能提供高性能。Oracle的基于成本的优化器功能强大,但它通常需要大量的调优和专有工具,从而增加了复杂性和成本。
性能基准测试
独立的基准测试研究表明,在许多情况下,PostgreSQL提供了与Oracle相当的性能——如果不是更好的话。无论是处理复杂的分析查询还是处理大量事务,由于其活跃的开发社区,PostgreSQL的性能在每个版本中都在不断提高。
数据索引和分区
PostgreSQL提供了高级索引选项,如B-tree、GiST、GIN和BRIN,可以根据用例优化查询性能。PostgreSQL中的分区也得到了改进,现在支持声明式分区,简化了大型数据集的管理。虽然Oracle的索引和分区功能非常强大,但它们通常需要额外的许可证,或者需要专门的技能才能有效地管理。
并发和并行
PostgreSQL的多版本并发控制(MVCC)确保多个事务可以并发处理而不会相互锁定。这种方法最大限度地减少了死锁,并确保即使在高负载下也能获得流畅的用户体验。Oracle也支持高并发性,但严重依赖于微调和配置,这既耗时又昂贵。
5、安全性:保护您的数据在传输和休息
在数据泄露和监管要求不断增加的时代,安全至关重要。PostgreSQL和Oracle都提供了一系列的安全特性,但是PostgreSQL的方法更加灵活和透明。
内置安全特性
PostgreSQL提供了强大的安全机制,包括基于角色的访问控制(RBAC)、SSL/TLS加密和行级安全(RLS)。这些功能允许组织实现粒度访问控制,并确保敏感数据在所有级别受到保护。Oracle提供了类似的功能,但它们通常需要额外的配置,并且需要相应的成本。
合规性和认证
PostgreSQL用于监管遵从性至关重要的行业,如金融、医疗保健和政府。该数据库符合HIPAA、GDPR和PCI DSS等行业标准,适合处理敏感数据。Oracle也符合这些标准,但实现和维护的成本通常更高。
社区驱动的安全改进
PostgreSQL的优势之一在于它的开源社区,它可以快速解决安全漏洞并发布补丁。开源模型的透明性意味着每个人都可以立即获得安全补丁,而不需要昂贵的支持合同。相比之下,甲骨文的专有模式往往导致对安全问题的反应较慢,而且补丁通常与昂贵的支持协议挂钩。
6、可扩展性和自定义
扩展和定制数据库以满足特定需求的能力是非常强大的,对于任何处理关键数据的组织来说都应该是一个关键的考虑因素。PostgreSQL的开放架构和丰富的扩展生态系统使其成为该领域的领导者。
灵活的模块化架构
PostgreSQL的架构是高度模块化的,允许扩展和自定义的无缝集成。无论您是需要添加新的数据类型,实现自定义函数,还是与第三方工具集成,PostgreSQL都能让您轻松完成。Oracle作为一个封闭的系统,限制了这种灵活性,通常要求企业在预定义的约束条件下工作或购买额外的模块。
开放vs封闭
Oracle的封闭生态系统意味着任何定制通常都局限于Oracle所支持或提供的内容。对于需要特定功能而无法开箱即用的组织来说,这可能是一个重要的限制。相比之下,PostgreSQL的开源特性鼓励创新,并允许企业根据自己的确切需求定制数据库。这反映在PostgreSQL庞大的第三方扩展和工具生态系统中。
先进的扩展
PostgreSQL的生态系统包括强大的扩展,如用于空间数据的PostGIS、用于时间序列数据的TimescaleDB和用于分布式数据库的Citus。这些扩展都是免费的,并且在各行各业广泛使用,提供的功能可以与Oracle的付费模块相媲美甚至超过。
开发者生态系统
PostgreSQL的开发者社区是它最大的资产之一。世界各地成千上万的开发人员为代码库做出贡献,创建扩展并提供支持。这个充满活力的生态系统促进了创新,并确保PostgreSQL保持在数据库技术的前沿。Oracle的开发者社区虽然强大,但很大程度上是由Oracle自己驱动的,限制了可用解决方案的多样性。
7、社区及支援
数据库背后的支持和社区可以在解决问题的速度以及学习和实现新特性的容易程度方面产生重大影响。
充满活力的开源社区
PostgreSQL的社区是开源世界中最大、最活跃的社区之一。通过定期的会议、论坛和邮件列表,PostgreSQL用户可以免费获得丰富的知识和支持。这与Oracle的集中式支持模式形成了鲜明对比,后者的大多数支持选项都与昂贵的服务协议绑定在一起。
文档和学习资源
PostgreSQL社区提供了广泛且维护良好的文档,使入门和排除问题变得容易。此外,网上还有无数免费的教程、课程和指南。Oracle的文档是全面的,但往往与专有的工具和特性捆绑在一起,使那些尚未在Oracle生态系统中投资的人无法访问它。
支持模型
对于需要专业支持的组织,PostgreSQL提供了广泛的选择,从小型咨询公司到专门从事PostgreSQL解决方案的大型企业。这种多样性允许组织选择适合其需求和预算的支持级别。相比之下,Oracle主要通过自己的渠道提供支持,这些渠道通常既昂贵又不灵活。
8、PostgreSQL的血统:跨行业的成功证明
PostgreSQL已经开发了几十年,但近年来的增长是其可靠性、可伸缩性和性能的真实证明。各行各业的组织越来越多地选择PostgreSQL而不是Oracle,这是出于对灵活性、成本节约和数据控制的渴望。
现实世界的应用
PostgreSQL被一些世界领先的公司所使用,本文前面已经分享了一些示例。从金融和医疗保健到科技和政府,它的应用遍及各个行业。这种广泛的使用强调了PostgreSQL的多功能性及其满足大小组织需求的能力。
创新与路线图
PostgreSQL社区不断创新,定期发布新的特性和改进。该项目的开源性质确保了这些进步是由现实世界的需求和来自全球开发人员网络的贡献驱动的。甲骨文虽然具有创新精神,但受到公司路线图和领导层设定的优先事项的限制。
成功的故事
一些组织已经成功地从Oracle迁移到PostgreSQL,理由是成本更低,灵活性更高,性能更好。例如,曾经严重依赖Oracle的美国联邦政府已将其许多关键系统转移到PostgreSQL,从而节省了数百万美元的许可费用。类似地,像Spotify和Instagram这样的全球科技巨头已经在PostgreSQL上建立了他们的平台,突出了它处理高流量应用程序的能力。
结论
我再重复一遍我一开始说过的话:为什么要花10万美元去做只需要5000美元就能完成的事情呢?
在一系列标准上,PostgreSQL比Oracle提供了几个关键的优势。PostgreSQL的开源特性提供了显著的成本优势,允许组织将其投资转移到其他地方。它的可靠性、可伸缩性和性能与Oracle相当,使其成为关键任务应用程序的可行选择。
由于其透明的开发过程和庞大的扩展生态系统,安全性和可扩展性也是PostgreSQL的亮点。充满活力的社区和丰富的免费资源使PostgreSQL更容易学习、实现和维护,甚至对于预算有限的组织也是如此。
虽然Oracle仍然是一个功能强大的数据库系统,具有丰富的功能集,但其高成本和专有性质使其对寻求灵活性和成本效益的组织不那么有吸引力。随着越来越多的公司认识到开源软件的好处,PostgreSQL的采用继续增长,使其成为现代数据管理的主要选择。
对于评估其数据库选择的组织来说,PostgreSQL作为一个可靠的、可扩展的、经济有效的Oracle替代品,提供了一个令人信服的案例。无论您是想要扩大规模的初创企业,还是想要降低成本的企业,PostgreSQL都能提供在当今数据驱动的世界中取得成功所需的工具和灵活性。
原文: https://stormatics.tech/blogs/postgresql-is-a-viable-alternative-to-oracle-here-is-why
个人微信:_iihero
CSDN: iihero
墨天轮:https://www.modb.pro/u/16258 (Sean)
pgfans: iihero
往期导读:
1. PostgreSQL中配置单双向SSL连接详解
2. 提升PSQL使用技巧:PostgreSQL中PSQL使用技巧汇集(1)
3. 提升PSQL使用技巧:PostgreSQL中PSQL使用技巧汇集(2)
4. PostgreSQL SQL的基础使用及技巧
5. PostgreSQL开发技术基础:过程与函数
6. PostgreSQL中vacuum 物理文件truncate发生的条件
7. PostgreSQL中表的年龄与Vacuum的实验探索:Vacuum有大用
8. PostgreSQL利用分区表来弥补AutoVacuum的不足
9. 也聊聊PostgreSQL中的空间膨胀与AutoVacuum
10. 正确理解SAP BTP中hyperscaler PG中的IOPS (AWS篇)