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 直播资料汇总


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

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

PostgreSQL 15新版本特性解读(含直播问答、PPT资料汇总)的更多相关文章

  1. Java 15 新特性:隐藏类

    什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类.引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们.可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! ...

  2. 【PostgreSQL 】PostgreSQL 15对distinct的优化

    示例表 table t_ex; c1 | c2 ----+---- 2 | B 4 | C 6 | A 2 | C 4 | B 6 | B 2 | A 4 | B 6 | C 2 | C 以下SQL语 ...

  3. Java SE 15 新增特性

    Java SE 15 新增特性 作者:Grey 原文地址:Java SE 15 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  4. 【PostgreSQL】PostgreSQL 15移除了Stats Collector

    试用即将发行的PostgreSQL 15的人会发现少了一个后台进程:​ postgres 1710 1 0 04:03 ? 00:00:00 /usr/pgsql-15/bin/postmaster ...

  5. 用极简方式实现新浪新版本特性展示效果--view的图片轮播

    在发布版本的时候,大多数软件会在第一次使用新版本时候弹出视图用几张图片给用户做一个新版本特性介绍,最简单如下图新浪的版本特性介绍 由于图片是全屏展示且是左右滑动,大多数情况开发者会选择使用scroll ...

  6. delphi 各新版本特性收集

    delphi 各新版本特性收集 http://www.cnblogs.com/dreamszx/p/3602589.html

  7. 阿里云正式上线移动直播问答解决方案,助力APP尽情“撒币”!

    2018年伊始,互联网圈就刮起了一阵"大佬狂撒币,网友喜答题"的热潮.以映客芝士超人等为代表的直播问答平台,通过答题分奖金的互动模式,迅速引爆网络热点.随后,多个直播和视频平台也上 ...

  8. 开发者了解NET的15个特性

    NET 开发者了解的15个特性 本文列举了 15 个值得了解的 C# 特性,旨在让 .NET 开发人员更好的使用 C# 语言进行开发工作. ObsoleteAttribute ObsoleteAttr ...

  9. Java 13 特性解读

    Java 13 特性解读    转 https://blog.csdn.net/bjweimengshu/article/details/100978383   2017年8月,JCP执行委员会提出将 ...

  10. Java 15 新特性:文本块

    大家好,我是DD,今天继续来学点Java的新特性! 假设有这样一个场景,我们需要做一个工具.用来自动生成项目文档,文档可以通过浏览器查看,所以最后产出物肯定是一堆html文件.为了让这些html文件更 ...

随机推荐

  1. Python+selenium编写第一个UI自动化脚本

    python UI自动化前提:①python需要安装selenium模块  ②下载浏览器驱动 1.安装selenium模块 先确认本地是否安装selenium模块,没有的话点击右边的添加按钮" ...

  2. 【Flutter】基础环境搭建

    一.下载 安装 配置 Android Studio 官网下载地址: https://developer.android.google.cn/studio?hl=zh-cn SDK下载,代理配置问题: ...

  3. SmolLM: 一个超快速、超高性能的小模型集合

    简介 本文将介绍 SmolLM.它集合了一系列最尖端的 135M.360M.1.7B 参数量的小模型,这些模型均在一个全新的高质量数据集上训练.本文将介绍数据整理.模型评测.使用方法等相关过程. 引言 ...

  4. 为什么我们需要不断的开发不同的机器学习模型 —— Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?

    引用: 作者:xyzh https://www.zhihu.com/question/26726794/answer/151282052 写给懒得看的人: 没有最好的分类器,只有最合适的分类器. 随机 ...

  5. x86_64 ubuntu22.04环境下编译版本python3.13.0 alpha 0源码——python3.13.0 alpha 0的源码编译

    python3.13.0 alpha 0版本源码编译: 环境--x86_64 ubuntu22.04系统: 1. 源码下载: git clone https://github.com/python/c ...

  6. 【全】CSS动画大全之按钮【c】

    效果预览 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  7. stm32g070 不同channel区别

    1. TIM 2.UART

  8. Typora中的markdown语法的学习

    markdown语法学习 二级标题 三级标题 四级标题 字体 hello world hello world hello world hello world 引用 我是最nb的 分割线 图片 ctrl ...

  9. 目标追踪 ByteTrack 算法详细流程分析

    原理介绍 ByteTrack是字节跳动与2021年10月份公开的一个全新的多目标跟踪算法,原论文是<ByteTrack: Multi-Object Tracking by Associating ...

  10. HarmonyOS NEXT未成年人模式无缝联动所有应用,过滤非适龄内容

    背景 随着消费电子产品和移动互联网的普及,未成年人互联网普及率96.8%,超过80%的未成年人都拥有自己的上网设备,而如何引导孩子正确上网一直是家长们的担忧.市场上很多电子设备.系统推出了一些未成年人 ...