以下文章转载自:中国开源软件推进联盟PostgreSQL分会
转载自:https://stormatics.tech/blogs/postgresql-is-a-viable-alternative-to-oracle-here-is-why前言
为什么要花 100,000 美元去买你只需 5,000 美元就能实现的东西呢?这是主要问题。 Oracle 是 DBMS 领域的老牌巨头,提供功能丰富的平台,但价格昂贵,通常面向预算充足的大型企业。另一方面,PostgreSQL 是开源的,具有自由许可和零许可费用。由于其可靠性、可扩展性、性能和易用性,它的受欢迎程度显著提高。下图使用 Stackoverflow 的年度开发人员调查绘制了 PostgreSQL 和 Oracle 5年来的受欢迎程度。让我们从选择使用 PostgreSQL来存储其关键数据的 5 个家喻户晓的公司开始: Instagram是一个以图片和短视频分享为核心的社交网络平台,用户可以上传、编辑和浏览内容,并通过点赞、评论和私信进行互动。Instagram 在早期,尤其是在快速增长阶段,对 PostgreSQL 的使用尤为突出。工程师们讨论了 PostgreSQL 如何在关键的扩展时刻支持他们的需求。 阅读更多:https://read.engineerscodex.com/p/how-instagram-scaled-to-14-millionSpotify 是一个全球性的音乐和播客流媒体服务平台,提供海量的音乐库、个性化推荐和多种播放列表,支持在线收听和离线下载。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(Internet Movie Database)是一个提供电影、电视剧、游戏和电影制作人员信息的在线数据库,包括用户评分、评论和新闻,是电影爱好者和专业人士的重要参考资源。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 更具经济可行性。我们将讨论以下8个主题:
一、成本:在不确定的经济环境中控制开支
PostgreSQL和Oracle之间最显著的区别之一在于它们的成本结构。PostgreSQL是开源的,并且带有自由许可证,可以免费使用,而Oracle则采用商业许可模式运作,通常涉及大量的前期投资和持续的成本。PostgreSQL 完全免费 - 没有许可费、没有强制性支持成本,也没有供应商锁定。这是一个显著的优势,特别是在经济不确定时期,企业需要控制成本。另一方面,Oracle 需要根据用户、处理器或实例的数量来支付昂贵的许可证,这些费用很快就会累积到令人望而却步的地步,尤其是在组织需要扩展时。考虑到总拥有成本,PostgreSQL 全面胜过 Oracle。Oracle 的许可费用只是开始,维护、升级和支持会增加更多成本。PostgreSQL 是开源软件,没有许可费用,并且在支持方面具有灵活性。组织可以从众多供应商中进行选择,而不会被锁定在一家供应商上。选择 PostgreSQL 可以节省大量时间。无需支付与 Oracle 相关的高额年费,公司可以将资源转移到其他领域,如开发、创新或客户体验。此外,PostgreSQL 的灵活性和可扩展性使公司能够构建所需的精确解决方案,而无需购买额外的昂贵 Oracle 模块。Oracle 的生态系统以隐性成本而臭名昭著。附加组件、扩展和附加服务很容易增加您的数据库预算。相比之下,PostgreSQL 提供了大量免费的强大扩展。无论您需要地理信息系统 (GIS) 功能、时间序列数据管理还是全文搜索,PostgreSQL 的开源模型都能提供高级功能,而且不会花费太多。
二、可靠性:稳定性和经过验证的血统
可靠性是选择 DBMS 时的一个关键考虑因素,尤其是对于关键业务的应用程序而言。PostgreSQL 和 Oracle 都拥有悠久的稳定版本历史,但 PostgreSQL 的开发模型具有独特的优势:自 1986 年以来,PostgreSQL 一直处于积极开发阶段,其代码库也不断由全球贡献者社区进行完善。最终,PostgreSQL 成为一个强大、稳定且能够处理高风险部署的数据库系统。Oracle 也有着悠久的历史。然而,有时,其专有性质意味着公司战略比用户需求更能决定更新和改进。PostgreSQL 已在各行各业的关键任务部署中证明了其可靠性。从每天处理数百万笔交易的金融机构到管理敏感数据的政府机构,PostgreSQL 的 ACID 合规性可确保数据完整性和一致性。虽然 Oracle 经常用于类似的环境,但 PostgreSQL 提供了相当的可靠性,而成本负担却不高。这两种数据库都完全符合 ACID 标准,但 PostgreSQL 对稳定性的承诺和“一次做好”的理念使其成为无法承受停机或数据损坏的企业的可靠选择。PostgreSQL 的事务控制、一致性和容错能力与 Oracle 提供的服务相当,甚至某些方面会优于 Oracle,譬如:PostgreSQL 在遵循 SQL 标准方面做得比 Oracle 更好。
三、可扩展性:随着业务的增长处理数据增长
随着业务的增长,其数据需求也在增长。无缝扩展的能力对于任何 DBMS 都至关重要,PostgreSQL 和 Oracle 都具有内置功能以及支持可扩展性的生态系统工具。然而,PostgreSQL 的开放式架构使其在许多场景中占据优势。PostgreSQL 支持垂直扩展(向单个服务器添加更多资源)和水平扩展(添加更多服务器以分配负载)。它具有物理和逻辑复制功能,并通过内置功能和扩展支持分片。虽然 Oracle 提供了类似的功能,但实施和维护这些解决方案通常成本高昂,集群选项昂贵,高级功能需要额外付费。在分布式数据库成为常态的世界中,PostgreSQL 占据了有利地位。借助Citus扩展、逻辑复制、外部数据包装器 (FDW) 和高级分区等功能,PostgreSQL 可以轻松处理地理分布的数据,同时保持一致性和性能。Oracle 也支持分布式系统,但通常需要大量的财务和技术投资才能有效实现这一点。
四、性能:高效管理高速数据
性能是评估数据库的关键指标。虽然 Oracle 通常被视为高性能应用程序的首选,但 PostgreSQL 已取得重大进展,现在在许多情况下被认为与 Oracle 相当,甚至优于 Oracle。PostgreSQL 的查询规划器和优化器旨在高效处理复杂查询。数据库引擎会分析并选择最高效的执行计划,使其即使在处理大型数据集时也能提供高性能。Oracle 基于成本的优化器功能强大,但通常需要大量调整和专有工具,这增加了复杂性和成本。独立基准研究表明,PostgreSQL 在许多情况下的性能与 Oracle 相当,甚至更好。无论是处理复杂的分析查询还是处理大量事务,得益于其活跃的开发社区,PostgreSQL 的性能随着每个版本的发布而不断提高。PostgreSQL 提供高级索引选项,例如 B-tree、GiST、GIN 和 BRIN,可根据用例优化查询性能。PostgreSQL 中的分区功能也得到了发展,现在支持声明式分区,可简化大型数据集的管理。虽然 Oracle 的索引和分区功能非常强大,但它们通常需要额外的许可证或专业技能才能有效管理。PostgreSQL 的多版本并发控制 (MVCC) 可确保多个事务可以同时处理而不会相互锁定。这种方法可以最大限度地减少死锁,并确保即使在高负载下也能提供流畅的用户体验。Oracle 也支持高并发性,但严重依赖于微调和配置,这既耗时又费钱。
五、安全性:保护传输中和静止的数据
在数据泄露和监管要求日益增加的时代,安全至关重要。PostgreSQL 和 Oracle 都提供了一系列安全功能,但 PostgreSQL 的方法更灵活、更透明。 PostgreSQL 提供强大的安全机制,包括基于角色的访问控制 (RBAC)、SSL/TLS 加密和行级安全性 (RLS)。这些功能允许组织实施细粒度的访问控制并确保敏感数据在各个级别都受到保护。Oracle 提供类似的功能,但它们通常需要额外的配置并产生相关费用。PostgreSQL 用于监管合规性至关重要的行业,例如金融、医疗保健和政府。PostgreSQL符合 HIPAA、GDPR 和 PCI DSS 等行业标准,适合处理敏感数据。Oracle 也符合这些标准,但实施和维护成本通常较高。PostgreSQL 的优势之一在于其开源社区,PostgreSQL社区能够快速解决安全漏洞并发布补丁。开源模式的透明度意味着安全修复程序可以立即提供给所有人,而无需昂贵的支持合同。相比之下,Oracle 的专有模式通常会导致对安全问题的响应速度较慢,并且补丁通常与昂贵的支持协议挂钩。
六、可扩展性和定制化
扩展和定制数据库以满足特定需求的能力非常强大,对于任何处理关键数据的组织来说,这都是一个重点考虑因素。PostgreSQL 的开放式架构和丰富的扩展生态系统使其成为该领域的领导者。PostgreSQL 的架构高度模块化,允许无缝集成扩展和自定义。无论您需要添加新数据类型、实现自定义函数还是与第三方工具集成,PostgreSQL 都能让您轻松完成。Oracle 是一个封闭的系统,限制了这种灵活性,通常要求企业在预定义的约束内工作或购买额外的模块。Oracle 的封闭生态系统意味着任何定制通常仅限于 Oracle 支持或提供的功能。对于需要特定功能(开箱即用)的组织来说,这可能是一个重大限制。相比之下,PostgreSQL 的开源性质鼓励创新,并允许企业根据自己的确切需求定制数据库。这反映在 PostgreSQL 庞大的第三方扩展和工具生态系统中。 PostgreSQL 生态系统包括强大的扩展,例如用于空间数据的 PostGIS、用于时间序列数据的 TimescaleDB 和用于分布式数据库的 Citus。这些扩展都是免费的,广泛应用于各个行业,提供的功能可与 Oracle 付费模块相媲美甚至超过其功能。PostgreSQL 的开发者社区是其最宝贵的资产之一。全球有成千上万的开发者为代码库做出贡献,创建扩展并提供支持。这个充满活力的生态系统促进了创新,并确保 PostgreSQL 始终处于数据库技术的前沿。Oracle 的开发者社区虽然很强大,但主要由 Oracle 自身推动,这限制了可用解决方案的多样性。七、社区和支持
数据库背后的支持和社区可以对问题解决的速度以及学习和实施新功能的难易程度产生重大影响。PostgreSQL 社区是开源世界中规模最大、最活跃的社区之一。通过定期的会议、论坛和邮件列表,PostgreSQL 用户可以免费获得丰富的知识和支持。这与 Oracle 的集中支持模式形成了鲜明对比,在 Oracle 的集中支持模式中,大多数支持选项都与昂贵的服务协议挂钩。PostgreSQL 社区提供了大量且维护良好的文档,让您可以轻松上手并解决问题。此外,网上还有无数免费教程、课程和指南。Oracle 的文档很全面,但通常与专有工具和功能相关,因此尚未投资 Oracle 生态系统的用户难以理解。对于需要专业支持的组织,PostgreSQL 提供了广泛的选择,从小型咨询公司到专门从事 PostgreSQL 解决方案的大型企业。这种多样性使组织能够选择适合其需求和预算的支持级别。相比之下,Oracle 主要通过自己的渠道提供支持,而这些渠道通常价格昂贵且缺乏灵活性。八、PostgreSQL 的血统:已在各个行业获得成功
PostgreSQL 已经开发了几十年,但近年来的增长真正证明了其可靠性、可扩展性和高性能。各行各业的组织越来越多地选择 PostgreSQL 而不是 Oracle,因为他们希望获得灵活性、节省成本并控制数据。PostgreSQL 被一些世界领先的公司使用,本文前面已经分享了一些例子。它的采用涵盖了从金融和医疗保健到技术和政府等不同的行业。这种广泛的使用凸显了 PostgreSQL 的多功能性及其满足大型和小型组织需求的能力。PostgreSQL 社区不断创新,定期发布新功能和改进。该项目的开源性质确保这些进步是由现实世界的需求和全球开发人员网络的贡献推动的。Oracle 虽然具有创新性,但受到其公司路线图和 Oracle 领导层设定的优先事项的限制。一些组织已成功从 Oracle 迁移到 PostgreSQL,理由是成本更低、灵活性更高、性能更好。例如,曾经严重依赖 Oracle 的美国联邦政府已将其许多关键系统转移到 PostgreSQL,从而节省了数百万美元的许可费用。同样,Spotify 和 Instagram 等全球科技巨头也在 PostgreSQL 上构建了他们的平台,凸显了其处理高流量应用程序的能力。
结论
我再重复一下一开始说的话:只要花 5,000 美元就能实现的事情,为什么要花 100,000 美元呢?PostgreSQL 在一系列标准上都比 Oracle 具有多项关键优势。PostgreSQL 的开源特性提供了显著的成本优势,使组织能够将投资转移到其他地方。它的可靠性、可扩展性和性能与 Oracle 相当,使其成为关键任务应用程序的可行选择。安全性和可扩展性也是 PostgreSQL 的亮点,这要归功于其透明的开发流程和庞大的扩展生态系统。充满活力的社区和丰富的免费资源使 PostgreSQL 更易于学习、实施和维护,即使对于预算有限的组织也是如此。尽管 Oracle 仍然是一个功能丰富的强大数据库系统,但其高成本和专有性使其对寻求灵活性和成本效益的组织吸引力较小。随着越来越多的公司认识到开源软件的好处,PostgreSQL 的采用率不断增长,使其成为现代数据管理的首选。对于正在评估数据库选项的组织来说,PostgreSQL 是一个可靠、可扩展且经济高效的 Oracle 替代方案,具有很强的说服力。无论您是希望扩展规模的初创公司,还是希望降低成本的企业,PostgreSQL 都能提供在当今数据驱动的世界中取得成功所需的工具和灵活性。一个人的 SaaS,九年
GUI / GitOps / API: 用 Bytebase 实现 SQL 审核
Bytebase 产品介绍
Bytebase 签约交银施罗德,规范化数据库变更,确保上下游 schema 一致