PostgreSQL:25年坚守,开源数据库的传奇之路
作者
CaigKerstiens
编译
王瑞平
审校
云昭
PostgreSQL,这款开源数据库刚刚迈入了它不可思议的25年里程碑。尽管它并没有凭借数百万美元的风险投资或者大规模的技术宣传,但它一直默默地坚守着,不断演进。
让我们一起回顾一下,PostgreSQL是如何在这漫长的岁月里走到今天的吧!
一、起源之路
PostgreSQL的起源可以追溯到Ingres数据库系统,最初是在加州大学伯克利分校的MichaelStonebraker的指导下构建的一个交互式图形检索系统。后来,为了提升数据库性能,团队决定转向支持关系数据库的项目。
最初,他们使用的是QUEL编程语言,而不是SQL。然而,年,美国国家标准学会正式将SQL设置为首选的数据库查询语言,自此,许多相关数据库项目都开始朝着这个方向发展。
年,Postgres95正式发布,SQL也顺理成章地被添加进来。
年,随着第一个PostgreSQL版本6.0的发布,全球PostgreSQL开发团队也成立,标志着这个项目跨出了学术界的门槛,项目领导小组也一直延续至今!
年,Postgres6.5发布,很多技术理念至今仍被采用!
二、功能的丰富
进入21世纪初,PostgreSQL开始吸纳更多关键的基础组件,重点放在构建可靠的数据库和SQL功能上,用户可以享受到以下功能:
预写式日志:这是一项数据库日志记录技术,用于在数据实际写入磁盘之前记录数据的更改,以确保数据的一致性和完整性。
外连接:一种数据库连接操作,用于将两个表中的记录组合在一起,即使其中一个表中没有与另一个表中的记录匹配的记录。
字段删除
模式
在年代初期,一些杰出的个人也为PostgreSQL的发展贡献良多,其中包括TomLane、JoshBerkus、BruceMomjian、HiroshiInoue和PeterEisentraut,还有年“PostgreSQL周年纪念峰会”上的人物如MagnusHagander和StephenFrost等。
这些人一直为PostgreSQL社区的繁荣贡献力量。
总的来说,每个参与PostgreSQL发展的人都对它充满信心,认为它蕴含着巨大的市场机遇,而开源数据库的浪潮也正在逐渐崭露头角。
三、持续成熟
进入21世纪后期,PostgreSQL已经成为一个相当可靠的数据库。它得到了更丰富的资金支持,更广泛的SQL支持,并不断改进WAL和VACUUM等关键组件,使得PostgreSQL更加可信赖,但在易用性方面仍然有改进的空间。
不同的功能模块开始相互融合,其中包括:
并发索引创建
服务器热备
查询语言改进
所有数据类型
二阶段提交
有了这些丰富的功能和性能的提升,PostgreSQL逐渐塑造成了一种新型数据库,具备了可扩展的数据库类型。正如原作者所言:“我认为,强大的报告功能真正改变了PostgreSQL的游戏规则;年,Postgres8.4中又出现了窗口函数和公用表达式。
有了这些功能的加持,我再也不会回头看其它数据库了。”
在奠定了坚实的基础后,PostgreSQL开始在更广泛的数据生态系统中留下自己的印记。由于它坚实的代码基础和自由的许可证,许多公司选择了PostgreSQL,并开始在其基础上进行定制开发。
从21世纪初到后期,大多数公司在采用PostgreSQL后的第一步是将MPP整合到PostgreSQL中,以更好地支持联机分析处理工作负载。
将MPP与窗口函数和公用表达式等功能相结合,使得开发者可以轻松构建全新而强大的系统,而无需从头开始。
这种新型数据库的出现缩短了数据库成熟所需的时间。尽管一些PostgreSQL的分支已经消失,但PostgreSQL自己的发展之路却从未停止。
五、年:PostgreSQL9.0和9.1
年,PostgreSQL开始变得越来越酷!
随着PostgreSQL9.0和9.1的发布,它支持了listen/notify和hstore功能,同时也引入了pg_upgrade,使升级变得更加容易。此外,随着GIN和GiST索引的引入,开发者可以获得更多种类的索引,而不仅
是标准的B-Tree索引。
随后,PostgreSQL继续扩展和重构,使用户更容易地使用这些扩展功能。这一切都为PostgreSQL的未来奠定了坚实的基础。
六、-:从假JSON到真JSON
开发人员一直在寻找不同的数据处理方式,而PostgreSQL则不断进化以满足他们的需求。年,在版本9.2中,PostgreSQL引入了JSON验证,尽管并不是真正的JSON。然而,几年后,PostgreSQL迎来了真正的JSON支持。
PostgreSQL9.3带来了横向连接、可更新的外部表以及校验和等功能。
而在PostgreSQL9.4中,引入了更出色的JSONB数据类型,这意味着您可以更轻松地对数据进行索引,无需对特定的JSON函数进行索引。
七、年:PostgreSQL9.5、9.6、10
在年,PostgreSQL不仅改进了性能,还推出了9.5、9.6和10版本,进一步增强了现有功能。JSONB不仅开始支持内联更新,还提升了并行性。
此外,其他亮点还包括:
行级安全性:允许数据库管理员根据策略来决定用户是否能够查看或操作表中的特定数据行。这一功能在PostgreSQL9.5中首次引入,为数据安全性提供了更多保障。
逻辑数据复制:从PostgreSQL10开始引入,逻辑复制是一种复制工具,可以将部分或全部数据复制到新的位置,并持续从主源更新数据。这有助于在不同地点维护精确的数据副本。
八、PostgreSQL与MySQL的对比
在Reddit社区上,用户们对于选择PostgreSQL还是MySQL进行了激烈的讨论。在过去的几年里,MySQL一直占据着数据库榜首的位置,但随着时间的推移,PostgreSQL凭借其强大的功能逐渐超越了MySQL,在排行榜上以45.6%的比例位列第一。
PostgreSQL不仅如此,它也因其独特的先进性逐渐成为开发者心目中最受欢迎的开源数据库之一,助力着数据的现代化!
总结一下,为什么用户如此认可PostgreSQL呢?因为PostgreSQL更可靠、更安全、功能更丰富,而且没有任何锁定。它不仅仅是一个普通的“数据库”,更是一个强大的数据平台!
在Reddit的其他评论中,我们还发现,PostgreSQL的流行是在大多数主流开发者中成为首选的时候。正如一位用户所言:“使用PostgreSQL并不意味着你需要放弃SQLite。”