暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

致敬PostgreSQL 10落幕

原创 多米爸比 2022-11-17
1263

伴随PostgreSQL 15.1小版本的发布,PostgreSQL 10.23也落幕于红线之外。

image.png

习惯用大版本加小版本命名端口和升级的我已等不来1024的跨越,linux对低端口的约束将永恒印记于PostgreSQL 10!

印记一:从XYZ到XY

PostgreSQL的版本控制从X.Y.Z转变为X.Y. ,与"9.5"和"9.6"相比,"10"和"11"之间的升级更容易解释,这可以说是最有影响力的一个变化。

印记二:数据分区

PostgreSQL 10引入内置分区,是第一个提供声明式分区功能的版本。我曾经也使用继承表加触发器的方式管理公交系统的消费充值数据,维护管理确实需要一定的工作量。

PostgreSQL 10 允许我们使用简单的SQL命令创建分区,从而降低了分区管理的复杂性。虽然后续版本扩展了分区功能并不断完善性能,但PostgreSQL 10奠定了数据分区功能的基础。

印记三:逻辑复制

PostgreSQL 9.4引入了逻辑复制的基础层,PostgreSQL 10 增加了对逻辑复制的直接支持,引入了在数据库之间创建发布和订阅的能力。

逻辑复制设计的精妙之处在于服务器既可以发布数据集又可同时订阅数据集,这里不存在主备角色一说。允许两个不同的可写系统之间或不同的大版本之间移动数据,甚至可以移动到其他数据库中。

截至到PostgreSQL 15,逻辑复制支持INSERT、UPDATE、DELETE、TRUNCATE、分区表、行级和列级过滤等完整的功能。

印记四:仲裁提交(quorum)

PostgreSQL在10版本之前只能有一台服务器充当同步节点,引入仲裁提交的设计非常简单:假设我们希望三台服务器中的两台来确认事务提交,这就是仲裁提交要表达的想法。它允许开发人员或者管理员以更优雅的方式来定义事务提交。

仲裁提交对配置参数synchronous_standby_names的语法进行了扩展,下面是两个简单例子:

synchronous_standby_names = ANY 1 (s1, s2)
synchronous_standby_names = ANY 2 (s1, s2, s3)

synchronous_standby_names参数支持FIRST和ANY两种模式指定同步复制节点。

印记五:更安全的口令

在PostgreSQL 10之前,客户端口令认证使用MD5验证方法。MD5方法有一些已知的缺陷,SCRAM 改变了这一点。简而言之,SCRAM 方法让双方在不交换密码的情况下验证对方是否知道密码。

使用SCRAM需要更新PostgreSQL驱动程序,社区已提供所有基于libpq和非libpq驱动程序对SCRAM的支持。SCRAM也已经成为PostgreSQL 14中的默认身份验证方法,MD5将逐渐被淘汰。

更多

以上是PostgreSQL 10版本的主要功能印记,国内PostgreSQL的中文书籍也大多从版本10开始,个人也有一些PostgreSQL 10的印记,比如PCP、PGCE、PGCM认证也是基于版本10。

本文构思参考

https://jkatz05.com/post/postgres/postgres-10-tribute/

保持联系

从2019年12月开始写第一篇文章,分享的初心一直在坚持,本人现在组建了一个PG乐知乐享交流群,欢迎关注我文章的小伙伴加我微信进群吹牛唠嗑,交流技术。

456.png

最后修改时间:2022-11-17 15:29:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论