写点什么

陪跑多年,Postgres 终崛起封王!

作者:这我可不懂
  • 2023-08-11
    福建
  • 本文字数:2389 字

    阅读完需:约 8 分钟

陪跑多年,Postgres终崛起封王!

Postgres 开源数据库刚刚度过了它的 25 岁生日。遗憾的是,它既没有凭借数百万美元的风险投资脱颖而出,也没有获得技术布道师 DevRel 团队的支持,只处于起步阶段,但却一直在更新。


几个月之后,Postgres 16 正式版可能会闪亮登场,提及此,不免让人感到热血沸腾!我们也一起来回顾下 Postgres 是如何“走到”今天的吧!

一、Ingres、Postgres95、PostgreSQL


追根溯源,其实,Postgres 起源于 Ingres 数据库系统,最初是在加州大学伯克利分校 Michael Stonebraker 的指导下开始构建的交互式图形检索系统。后来,为提升数据库性能,团队改弦易辙,转而资助了关系数据库项目。


一开始,他们用的是 QUEL 编程语言而不是 SQL;1986 年,美国国家标准学会正式将 SQL 设置为首选项,至此,许多相关数据库项目都朝这个方向发展。


  • 1995 年,Postgres95 正式发布,SQL 也顺理成章地被添加进来。

  • 1996 年,当第一个 PostgreSQL 版本 6.0 发布时,PostgreSQL 全球开发团队也成立了,标志着开发走出学术界,项目领导小组也延续至今!

  • 1999 年,Postgres 6.5 发布,很多技术理念至今仍被采用!

二、丰富功能:Postgres 开始“成长”


2000 年,Postgres 开启它的成长之旅,通过外键和连接引入其它数据库。


21 世纪初,Postgres 又吸纳了更多的关键基础部件,主要侧重于构建可靠的数据库和 SQL,用户可获取如下的功能:


  1. 预写式日志(Write-Ahead-Log):一种数据库日志记录技术,用于在数据实际写入磁盘之前记录数据的更改,以确保数据的一致性和完整性。

  2. 外连接(Outer joins):一种数据库连接操作,用于将两个表中的记录组合在一起,即使其中一个表中没有与另一个表中的记录匹配的记录。

  3. 字段删除

  4. 模式


回顾 2000 年的一些细节,最令我感到兴奋的是:“一些对 Postgres 做出贡献的人至今仍是 Postgres 社区里的支柱。这些人包括我的同事 Tom Lane、Josh Berkus、Bruce Momjian、Hiroshi Inoue 和 Peter Eisentraut,还包括 2006 年‘PostgreSQL 周年纪念峰会’上的一些人:Magnus Hagander、Stephen Frost 等。”文章原作者回忆说。


总之,每个参与进 Postgres 的人都对它的前景非常看好,认为这里蕴含着巨大的市场机遇,开源数据库的浪潮也正开始达到巅峰。

三、Postgres 继续成熟


进入 21 世纪后期,Postgres 已经成为一个相当可靠的数据库了。


有了更丰富的资金支持、更广泛的 SQL 支持,以及 WAL 和 VACUUM 的改进,Postgres 变得更值得信赖,但在易用性方面仍有需要改进之处!


多种不同的功能开始组合,包括:

  • 并发索引创建 

  • 服务器热备

  • 查询语言改进 

  • 所有数据类型

  • 二阶段提交

四、更丰富的体系


之后,更多的 SQL 支持和更佳的性能将 Postgres 塑造成了新型数据库,具有可扩展的数据库类型。


“我认为,强大的报告功能真正改变了 Postgres 的游戏规则;2009 年,Postgres 8.4 中又出现了窗口函数和公用表达式(CTEs)。有了这些功能的加持,我再也不会回头看其它数据库了。”原作者在文章中提到。

奠定了坚实的基础后,Postgres 开始在更广泛的数据生态系统中留下印记。由于其坚实的代码基础以及许可,许多公司选择 Postgres 并开始对其进行“分叉”。


21 世纪初期到后期,大多数公司做的第一件事就是向 Postgres 中添加 MPP,使其更多关注联机分析处理(OLAP)的工作负载。而将 MPP 与窗口函数和公用表达式(CTEs)之类的功能结合在一起时,开发者能获得全新而强大的系统,无需从头开始构建。


这种新型数据库的出现意味着数据库成熟所需时间缩短了数年。许多最初的分支如今已消失不在了,但有些仍存在于其它的产品中。尽管有些 Postgres 分支已被扩散,但 Postgres 始终没有停止前进的脚步。

五、2010 年:Postgres 9.0 和 9.1


2010 年,Postgres 开始变酷!


由于老式关系数据库不支持 listen/notify(从数据库发布到订阅)和 hstore(键/值数据类型)功能,Postgres 9.0 和 9.1 出现了,支持 pg_upgrade,这使升级变得更容易了。此外,随着 GIN 和 GiST 索引的出现,开发者所能获得的不再仅是标准 B-Tree 索引。


这之后,Postgres 一直都在扩展、重构了集成过程,用户可以更容易地使用这些扩展。

六、2012-2014:从假 JSON 到真 JSON


自始至终,开发人员都在寻求不同的数据处理方式。Postgres 听取了他们的意见,但后来在 JSON 方面作弊了。2012 年,在 9.2 版本中出现 JSON 验证,但这并不是真正的 JSON。实际上,几年后,Postgres 才会真正支持 JSON。


但这并没有阻止人们持续关注 Postgres;2014 年,真正的 JSON 出现。


Postgres 9.3 非常棒,有横向连接、可更新的外表、校验和等。在 Postgres 9.4 中,JSONB 数据类型中能获得更好的 JSON。这意味着,你能更轻松地对数据进行索引,而不必对特定 JSON 函数索引。

七、2016:Postgre9.5、9.6、10


之后,Postgre 在 2016 年改进了性能,推出 9.5、9.6、10 版本还持续增强了现有特性。JSONB 不仅开始支持内联更新,还提升了并行性,其它亮点包括:

  1. 行级安全性

又名“RLS”,允许数据库管理员决定用户是否能够根据策略查看或操作表中的特定数据行,是在 PostgreSQL 9.5 中引入的,为 PostgreSQL 用户又增添了一层安全保障。

2. 逻辑数据复制

逻辑复制从 Postgres 10 就开始出现了,它是一个复制工具,会将部分或全部数据复制到新的位置,并继续从主源更新数据。数据的精确副本会被保存于不同的位置。

八、用户眼中的 PostgresSQL VS MySQL


在 Reddit 社区的评论上,用户对于选择 PostgresSQL 还是 MySQL 展开了激烈的讨论。


前几年,MySQL 一直霸占着数据库榜首;但随着时间的流逝,PostgresSQL 凭借上述强大的功能逐渐超越了 MySQL,以 45.6%的比例位列排行榜第一。


图片


不仅如此,Postgres 凭借其独有的先进性逐渐成为了开发者心目中最受欢迎的开源数据库之一,助力实现数据现代化!


总结下,为什么用户如此认可 Postgres 呢?因为 Postgres 更可靠和安全、功能极其丰富、没有锁定;它不仅仅是一个“数据库”,更是一个数据平台!


图片


在 Reddit 上的其它评论中,我们发现,其实,PostgresSQL 的日益流行是在它成为大多数主流开发人员的首选之时。


图片


“使用 PostgresSQL 并不意味着你需要放弃 SQLite”,一位用户发表评论说。

发布于: 刚刚阅读数: 3
用户头像

低代码技术追随者,为全民开发而努力 2023-02-15 加入

大家好,我是老王,专注于分享低代码图文知识,感兴趣的伙伴就请关注我吧!

评论

发布
暂无评论
陪跑多年,Postgres终崛起封王!_数据库_这我可不懂_InfoQ写作社区