PostgreSQL系列文章---PostgreSQL14版本新特性

PostgreSQL系列文章—PostgreSQL14版本新特性

PostgreSQL系列文章—PostgreSQL14版本新特性



前言

本篇文章主要介绍PostgreSQL14版本的新特性


提示:以下是本篇文章正文内容,下面案例可供参考

一、PostgreSQL14版本新特性

1.1 数据类型

  • 基于已有的range类型添加对multirange类型的支持(Paul Jungwirth、Alexander Korotkov),允许指定多个、有序、不重复的列表。为每个range类型自动创建关联的multirange类型。
 SELECT datemultirange( daterange('2021-07-01', '2021-07-31'), daterange('2021-09-01', '2021-09-30'), daterange('2021-11-01', '2021-11-30'), daterange('2022-01-01', '2022-01-31'), daterange('2022-03-01', '2022-04-07') );
datemultirange                                                                                                           |
-------------------------------------------------------------------------------------------------------------------------+
{[2021-07-01,2021-07-31),[2021-09-01,2021-09-30),[2021-11-01,2021-11-30),[2022-01-01,2022-01-31),[2022-03-01,2022-04-07)}|
  • 允许扩展和内置数据类型来实现下标(Dmitry Dolgov)
    以前下标处理是硬编码到服务器中的,下标只能应用于数组类型。此更改允许使用下标表示法提取或分配有意义的任何类型的值的部分。
  • 允许订阅JSONB(德米特里·多尔戈夫) JSONB下标可以用于提取和分配JSONB文档的部分。
  • 添加对亚美尼亚语、巴斯克语、加泰罗尼亚语、印地语、塞尔维亚语和意第绪语词干的支持
  • 允许tsearch数据文件有无限的行长度(Tom Lane),之前的限制是4K字节。同时删除函数t_readline()。
  • 在数字数据类型中添加对Infinity和-Infinity值的支持(Tom Lane),浮点数据类型已经支持它们。
  • 添加点操作符<<|和|>>表示严格上/下测试(Emre Hasegeli)以前,这些被称为>^ 和 <^,但这种命名与其他几何数据类型不一致。旧的名字仍然可用,但有一天可能会被删除。
  • 添加运算符,用于LSN和数字(字节)值的加减运算符
  • 允许二进制数据传输更宽容的数组和记录OID不匹配(Tom Lane)
  • 为系统编目创建复合阵列类型,用户定义的关系早就有与之关联的复合类型,以及这些复合类型上的数组类型。系统目录现在也可以。此更改还修复了在单用户模式下创建用户定义表将无法创建复合数组类型的不一致性。

1.2 函数

  • PostgreSQL 14 增加了新的 date_bin 函数, 可以用于将时间戳按照指定的间隔进行对齐(一种称为“装箱”的技术)。例如:
- SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01');
date_bin           |
-------------------+
2020-02-11 15:30:00|

SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01 00:02:30');
date_bin           |
-------------------+
2020-02-11 15:32:30|
  • 允许SQL语言函数和过程使用SQL标准函数体 (Peter Eisentraut),以前只支持字符串文字函数体。使用 SQL 标准语法编写函数或过程时,会立即解析主体并存储为解析树。这允许更好地跟踪函数依赖关系,并且可以具有安全优势。
  • PostgreSQL 14 支持存储过程的 OUT 参数,以及允许在 GROUP BY 子句中使用 DISTINCT 关键字删除 GROUPING SET 组合中的重复分组
  • 允许一些数组函数在兼容数据类型的混合上操作(Tom Lane),函数array_append()、array_prepend()、array_cat()、array_position()、array_positions()、array_remove()、array_replace()和width_bucket()现在接受anycompatiblelearray而不是anyarray参数。这使得他们对参数类型的精确匹配条件不那么苛刻。
  • 添加sql标准的trim_array()函数
  • 添加函数bit_count()返回位或字节串中设置的位数
  • 更新的正则表达式substring()语法,新的sql标准语法是SUBSTRING(文本类似模式ESCAPE escapechar)。之前的标准语法是SUBSTRING(text FROM pattern FOR escapechar),它仍然被PostgreSQL接受。
  • 导致exp()和power()对于负无穷指数返回0 (Tom Lane),以前,它们经常返回下溢错误。
  • ······

1.3 管理功能

  • 添加系统视图pg_stat_progress_copy,报告COPY进度
  • PostgreSQL 14 增加了连接管理相关的几个参数,包括 idle_session_timeout(设置关闭空闲连接的等待时间)以及 client_connection_check_interval (允许 PostgreSQL 在客户端断开后取消长时间运行的查询)。
  • REINDEX 命令现在支持分区表的子索引,同时 PostgreSQL 14 增加了一个新的使用工具 pg_amcheck ,用于检查数据损坏。
  • 向pg_prepared_语句添加列,以报告通用和自定义计划计数
  • PostgreSQL 14 针对 VACUUM 命令进行了许多改进,包括索引的优化。Autovacuum 现在可以分析分区表,并且能够将数据行的统计信息关联到父表。另外,通过调整 maintenance_io_concurrency 参数可以改善 ANALYZE 命令的性能。that can be controlled with parameter.
  • ······

1.4 复制和恢复

  • 允许备用服务器通过pg_rewind被重卷
  • PostgreSQL 14 改善了 PostgreSQL 从故障恢复状态中启动的速度,同时还支持针对 standby 模式下的 PostgreSQL 实例使用 pg_rewind 命令同步数据。
  • 添加服务器参数log_recovery_conflict_await来报告长时间的恢复冲突等待时间
  • PostgreSQL 14 增强了逻辑复制的各种性能,包括将正在进行中的事务传输到订阅服务器的能力,而不需要等待事务完成。The ALTER SUBSCRIPTION 使得增加/删除订阅更加简单。
  • 在具有大量共享缓冲区的集群上进行恢复时,对小表的快速截断
  • 增强逻辑复制API,允许流处理正在进行的大型事务
  • 允许逻辑复制将正在进行的长事务流到订阅者
  • 使用逻辑复制时,在命令完成期间向WAL添加缓存失效消息
  • 允许控制是否将逻辑解码消息发送到复制流
  • ······

1.5 索引

  • 允许添加 btree 索引以删除过期的索引条目以防止页面拆分,有利于减少索引列频繁更新的表上的索引膨胀。
  • 允许BRIN索引在每个范围内记录多个最小值/最大值 ,如果每个页面范围中都有一组值的时候非常有用。
  • 允许BRIN索引使用布隆过滤器,这使得BRIN索引可以有效地用于堆中没有很好本地化的数据。
  • 允许通过对数据进行预排序来构建一些GiST索引,预排序是自动进行的,允许更快的索引创建和更小的索引。
  • 允许SP-GiST索引包含INCLUDE’d 列

总结

笔者就介绍到这了,PostgreSQL 14 新特性不止于此,大家可以去看它的官方文档,笔者提倡大家学习新技术的时候看官方文档,官方文档是很全的也是最准确的。

著作权归NoLongerConfused所有。商业转载请联系NoLongerConfused获得授权,非商业转载请注明出处。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoLongerConfused

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值