写点什么

PostgreSQL 15 新版本特性解读(含直播问答、PPT 资料汇总)

作者:墨天轮
  • 2022 年 6 月 27 日
  • 本文字数:2871 字

    阅读完需:约 9 分钟

2022 年 6 月 23 日,墨天轮技术社区联合 PostgreSQL 中文社区共同举办【PostgreSQL 15 新特性解读】直播活动。小编在这里整理了直播间的代表性问题,请老师为大家解答。并在文末附上视频回放与 PPT 课件,以便大家下载、回顾。


直播亮点回顾


直播间的四位讲师分别从性能体验更新、新旧版本对比,最佳技术实践等主题展开讲解,干货满满。


来自中兴通讯数据库内核系统工程的尚长军老师分享的主题是PostgreSQL 15 Beta 1 新特性解读,他从应用、工具、Contirb 等三个方面出发,对 Sort 排序、WAL 压缩算法、\Doconfig 命令、“_ _"注释、\watch 命令、\getenv 命令等多个改进做了详细解读。


以新版本的 Sort 排序为例,通过对比测试 10000 行整数值排序的性能、仅存储 Dantum 性能提升很明显,新版本相较 PG14 快了近 26%。


来自云和恩墨的 PG 技术顾问彭冲老师带来了PostgreSQL 15 部分新特性预览的主题分享,介绍了新版本在参数、开发以及并行特性等方面的改进优化。从参数出发,新版本就新增了 GUC 增强内部标志管理、可配置权限、新增参数权限系统表、自定义变量限制等四个改进。


云和恩墨的技术顾问阎书利老师分享的主题是PostgreSQL 15 系统表、视图及等待事件改动,他为大家介绍了新版本在系统表、视图及等待事件上的改动。在系统标中新增 pg_publication_namespace,当在 CREATE PUBLICATION 语句中指定 FOR ALL TABLE IN SCHEMA 子句时,会把信息存储下来,提供 publication 和 schema 之间的映射。15 版本新特性通过模式发布,支持 FOR ALL TABLE IN SCHEMA 语法。


最后一位登场的是海能达通信股份有限公司 PostgreSQL 高级 DBA 崔鹏老师,他带来的主题是PostgreSQL 15版本迁移兼容性解析。崔老师不仅解析了升级兼容性之 28 项不兼容迁移,同时还带大家对 PG15 新特性做了整体预览。


相信本次分享能够帮助大家加深对新版本的了解,从而更好应用实战。

问答汇总

四位讲师分享的内容干货满满,直播间的问答区也非常积极。墨天轮在此整理了代表性的问题,邀请讲师们以文字的形式回答,以供大家学习交流。

尚长军

Q1、请问新手学习 PostgreSQL 数据库,从哪个版本入手比较好?


答:可以从最近的版本入手即可,比如 PG14。


Q2、公司使用部署 PG 的话,哪个版本比较稳定


答:目前 PG 几乎每年都会有大版本发布,如果兼顾稳定和功能,建议 12.7;如果需要用到一些新的能力,可以采用 14.2


Q3、PG 可以跨版本升级吗?


答:可以的。


Q4、MERGE 新特性是否和其他主流的数据库兼容,听说仅仅支持 PL/PGSQL,那么对相关表的触发器是否有影响?


答:老版本的 MERGE 无论是从语法还是用法,都和主流的如 Oracle 差别比较大,因此对触发器的应用是有影响的。据说 PG15 做了改进,更符合 SQL 标准了,可以用新版本测试一下。


Q5、PG10 可以直接升级到 PG15 吗?


答:可以的,我们通过 pg_upgrade 工具进行过 pg10 到 pg14 的升级 。


Q6、PG15 在 windows 下有什么新的改变?


答:新的特性基本上在 Windows 上都是支持的,除了极少数特性。


Q7、pl/pgsql 编程有没有好的教程?


答:目前市面上有关 pg 的技术书籍已经很多了,我觉得最好的教程还是 PG 各个版本的官方参考手册。

彭冲

Q1、有没有 PG 和 mysql、Oracle 迁移的相关工具,可以提供一下?


答:常见的工具有 pgloader 迁移 mysql、ora2pg 迁移 oracle。


Q2、oracle 19c 迁移到 PG 那个版本好?


答:保守一点可以使用 13。


Q3:类似 Oracle11g interval 分区的自动扩展分区的功能会加入到 PG 里吗?


答:目前还没看到,将来版本可能有。

阎书利

Q1、请问 pg 新手有什么学习资料和书籍可以推荐吗?


答:《PostgreSQL 修炼之道 从小工到专家》、官方文档


Q2、pg_index 这个改动,应该来说 null 只能有一个或者不能有空值这样才合理,之前为啥可以插入多个 null 值,基于什么考虑设计的呢?


答:这个应该和业务有关,不同业务需求不一致


Q3、pg_index 是整个 cluster 共享的还是每个数据库拥有一份?


答:pg_index、pg_class 这类的系统表是每个数据库独享一份,这些是在数据库创建时从模板数据库拷贝过来的,但是类似于 pg_database、pg_namespace 这些是整个 cluster 的所有数据库共享的。


Q4、老师,PostgreSQL 数据库和主流 MySQL 和 Oracle 的相同点和区别有那些呀?


答:其实异同是比较多的。这里我主要说几点关键的:


  • 1.三个都是关系型数据库

  • 2.ORACLE 是收费的,且不开源。MYSQL 和 PostgreSQL 是开源的,但是 PostgreSQL 的开源协议更彻底一些

  • 3.数据库 MVCC 的实现方法有两种:(1)写新数据时,把旧数据移到一个单独的地方,如回滚段中,其他人读数据时,从回滚段中把旧的数据读出来;(2)写数据时,旧数据不删除,而是把新数据插入。PostgreSQL 数据库使用第二种方法,而 Oracle 数据库和 MySQL 中的 innodb 引擎使用的是第一种方法。


Q5、Mysql 转 PG 有什么现成好用的工具?


答:可以使用比如 pgloader、FDW 等方式迁移


Q6、想了解内核与源码,请问老师有没有推荐的学习资料?


答:可以看看《PostgreSQL 数据库内核分析》这本书,再可以多看看源码的注释部分,一样可以学到很多知识。

崔鹏

Q1、执行计划查看有没有详细的解释?


答:推荐大家看下《PostgreSQL 修炼之道 从小工到专家》这本书,或者看下德哥视频中讲解 explain 这部分的内容。


Q2、pg 的执行计划,查看的顺序是?


答:


postgres=# explain (analyze, verbose, costs, buffers, timing) select count(*) from t1;                                                 QUERY PLAN                                                 ------------------------------------------------------------------------------------------------------------ Aggregate  (cost=20.75..20.76 rows=1 width=8) (actual time=0.017..0.018 rows=1 loops=1)
复制代码


这个节点的输出, 聚合, 输出第一行前的开销是 20.75 聚合的开销=20.75..20.76


 Output: count(*)   Buffers: shared hit=1 这个节点以及下级节点的BUFFER统计项   ->  Seq Scan on public.t1  (cost=0.00..18.60 rows=860 width=0) (actual time=0.011..0.012 rows=6 loops=1)
复制代码


这个节点的路径(全表扫描)0.00 表示输出第一行前的成本, 如这里输出第一行前不需要排序为 0.00. 后面是这个节点真实的时间


Output: id, name, age这个节点输出的列         Buffers: shared hit=1 这个节点的shared buffer命中1个page Planning Time: 0.050 ms   SQL解析时间 Execution Time: 0.102 ms 总的执行时间(8 rows)
复制代码


执行计划 自下 向上 一个节点 一个节点看


Q3、pg 有特定的适用环境么?


答:OS 层面适配了所有主流操作系统。使用 Citus 或者 GP 可以将 PG 适用于 HTAP 业务


Q4、pg 有 session 限制吗?


答:PG 是多进程架构,如果会话过多 需要考虑 会话进程占用的内存等资源

资料汇总

1、视频回放:PostgreSQL 15 新特性解读


2、直播资料:PostgreSQL 15 直播资料汇总





欲了解更多可以进入墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。


关注官方公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯

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

墨天轮

关注

数据库技术爱好者 2019.11.22 加入

墨天轮社区围绕数据人的学习成长提供一站式的全面服务。我们的愿景是共同建设一个有温度的技术社区和全新的数据社群聚合体,以乐知乐享之志,成同心共济之果。

评论

发布
暂无评论
PostgreSQL 15新版本特性解读(含直播问答、PPT资料汇总)_数据库_墨天轮_InfoQ写作社区