PostgreSQL数据库的指南

91 阅读7分钟

PostgreSQL的不可阻挡的崛起

Percona的Matt Yonkovit分享了他的观点:为什么PostgreSQL是目前城里最热门的数据库,自由的许可是如何导致大规模采用的,以及为什么你应该考虑转换到PostgreSQL。

每个人都喜欢新技术!

技术的炒作周期往往在一开始就吸引了市场的注意力。它被宣布为 "将取代所有其他市场领导者的技术",抢占头条,改变公司的方向,并产生巨大的嗡嗡声。

但是,通常情况下,这种热门的新技术会迅速放缓。有时它随着时间的推移被取代,有时它只是进入一个更正常的增长轨道。我们有多少次看到 "这家公司将成为下一个X",但它并没有完全发生?当然,在我的职业生涯中,这种循环已经重复了很多次。

这可能会使我们难以拥护最新的闪亮的小玩意,那个热门的数据库技术将主宰未来,并导致许多成熟的和新兴的技术公司下大赌注...。

这次不同的是,这个 "热门的新数据库 "已经存在了20多年,并即将发布其第14个版本。

是的,我说的是PostgreSQL

它是目前数据库世界的宠儿,而且有充分的理由。但是,它带来了一些棘手的问题:

1.为什么PostgreSQL会上升到顶端?

2.2.也许更重要的是,它将在那里停留多久?

开源的力量

当许多其他数据库技术兴起和衰落时,PostgreSQL经受住了时间的考验。它每年都在增长,不仅是在功能集方面,而且在流行方面。

PostgreSQL是世界上最先进的开源关系型数据库。它正乘着流行的浪潮,在最新的Stack Overflow开发者调查中,它被列为 "最想要的 "数据库,DB-Engines将其列为2020年的DBMS

特别有趣的是,与市场上的其他数据库相比,PostgreSQL的管理和所有权模式是多么不同。它不是由一个单一的企业实体控制的;它是行业中少数几个独立管理和治理的项目之一。

PostgreSQL拥有最自由的开源许可证之一。这使得它可以被100多个不同的公司分享、使用、分叉和建立。它的许可证的自由性质使得衍生项目成为可能,包括商业和开源项目,这些项目从社区的一些(甚至全部)工作中受益。

对于那些熟悉运动队的人,让我用一个比喻。有时你有一个伟大的教练,他不仅在执教球队方面很出色,而且还能训练和创造其他伟大的教练。这被称为 "教练树"。

PostgreSQL的教练树很稳固,有EDB、TimescaleDB、Greenplum、Citus、Yugabyte、CockroachDB、AWS RDS、Percona Distribution for PostgreSQL、Crunchy PostgreSQL等项目和产品。这些只是PostgreSQL核心项目所播下的几颗种子。当你与其他顶级数据库衍生出来的项目进行比较时,PostgreSQL是孤独的。

鼓励创新

多年来,PostgreSQL的核心功能集不断成熟和完善,但将代码直接输入PostgreSQL服务器并不容易。团队对新功能和代码保持严格的控制。

虽然这可能会引起一些寻求官方支持的功能的贡献者的关注,但PostgreSQL的架构被设计为允许新的功能被开发并作为扩展来运送。这有效地隔离了可能出现错误的新代码,引入了可变性,甚至造成了代码债务的支持噩梦。这种方法并不独特。MySQL和MariaDB也有一个插件架构;但是,它没有被证明像PostgreSQL那样流行。

这种可扩展性允许用户和像Percona这样的公司创建软件,为特定的用例增强PostgreSQL,而不必完全分叉代码。事实上,45个不同的社区提供的扩展已经包括在官方贡献的附加模块中(可在contrib文件夹中找到),这些模块与PostgreSQL一起出厂,还有成千上万的扩展存在于官方渠道之外。

此外,许多公司维护他们自己的分叉和PostgreSQL的 "企业版本"。这些扩展、分叉和项目之所以能够实现,是由于PostgreSQL的自由许可,它允许任何人从PostgreSQL的核心包开始。

这种自由的许可对PostgreSQL的采用是很好的,但它确实导致了一种风险,即你可能发现自己使用的 "某种开源版本 "可能与未来的版本不是100%兼容。你需要小心,你为你的企业选择的版本是真正的开源的,并且与PostgreSQL的核心软件兼容。

社区的影响

你可以把PostgreSQL的大部分力量追溯到它忠实的社区和强大的贡献者群体。

PostgreSQL社区包括全球数十万用户,以及数百家提供工具、补丁和扩展的公司。这个由销售和投资于PostgreSQL的公司组成的广泛而多样的群体给社区带来了巨大的优势。

当你看到一个公司控制的开源项目或数据库时,你经常看到一个公司专注于营销和推广,几乎独自承担了围绕该产品的教育和内容。

在PostgreSQL的案例中,有数百家不同的公司在这个领域提供营销、工程、销售、培训和教育。所有参与社区的公司都提高了意识和需求,推动了项目的发展。

这种作为一个团体推动采用的力量(和愿望)是一个巨大的战略优势。

可以这样想。甲骨文公司正在推动其旗舰数据库的知名度,它的一些合作伙伴也做出了一些贡献。但是,在PostgreSQL社区,你有所有的云供应商(微软、AWS、谷歌和其他),以及较大的PostgreSQL供应商(如Percona、EDB、CrunchyData、Ongres等),以及不同的社区项目,都在共同推动知名度和采用。这些名字背后有很大的力量。

这些公司还为用户提供了大量的选择,这对采用PostgreSQL的人来说是一个巨大的好处。这意味着,如果你不喜欢一个供应商,你可以轻松地尝试另一个。

许多人的力量 "在这里带来了巨大的优势,增加了创新、功能和工具。PostgreSQL13(即将成为14)已经是一个非常棒的通用数据库,但公司在此基础上建立了一个伟大的 "NewSQL "数据库,一个伟大的分析数据库,等等。

更多的工程师、更多的公司和更多的贡献者使得多样性和成长成为可能,而这在大公司中往往要慢得多,甚至是没有的(在大公司中群体思维可能是一个真正的问题)。在PostgreSQL,它导致了更聪明的解决方案和更快的创新。

多样性和健康的辩论

很明显,这并不总是一帆风顺。像任何社区一样,在前进的最佳方式上会有分歧和争论。最近,我们看到一些关于商标所有权和项目整体治理的担忧。这导致了激烈的辩论,不同的社区成员似乎彼此不和。

从外面看,这可能看起来很糟糕,但社区内的这种公开辩论和讨论是常见的,而且通常是健康的。开放源码之所以如此伟大,部分原因在于将来自不同人的、具有不同观点的想法汇集在一起,并采用它们中最好的。不是每个人都会对结果感到满意,但只要我们继续讨论、辩论和发展,我们都能获得成功。

PostgreSQL的开放开发模式、自由的许可和丰富的功能集已经创造了一个非常忠实的用户群,以及一支致力于推动采用并继续保持用户群快乐的公司大军。PostgreSQL背后的势头没有显示出放缓的迹象,我预测它将在未来几年内继续增长。如果它最终结束了MySQL的统治地位,占据了头把交椅,我也不会感到惊讶。