17611538698
webmaster@21cto.com

Postgres 15 都带来了什么新功能?

数据库 0 1569 2022-12-21 09:03:02

祝贺,PostgreSQL 社区于2022 年 11 月发布了第 15 版(稳定版),这会给广大开发者和数据库管理员带来什么好消息?请看正文。

权限模型更安全

CREATE 权限除数据库所有者外,其它用户的此项权限都将被撤销,这使权限分配更具备可调。

增加了 CREATE VIEW .. WITH (security_invoker=on) 的类型视图创建,该视图使用调用者而不是创建者的权限来访问基础表。这样你再不必担心无权访问表的用户可以通过视图来查看数据了。

性能加速

对数据行进行排序是 PostgreSQL 中常见操作。不仅在使用 ORDER BY 子句时使用,而且在索引创建、分区表等中使用。此外排序是算法上最昂贵的操作之一。因此版本 15 中将内存和磁盘排序的速度提高为目标,比前版本多达 4 倍的提升。

引入MERGE操作

新的MERGE合并操作根据提供的源和许多可用条件来修改目标数据表,允许在不编写过程语言函数或复杂的 CTE 查询的情况下进行数据处理。

图片

本质上,合并可以用作条件删除/插入/更新,这也使 PostgreSQL 语法实现更接近 SQL:2008 标准。

逻辑复制新特性

逻辑复制是 PostgreSQL 发展最快的功能之一。

从版本 15 开始,逻辑复制支持两阶段提交。现在还可以选择部分表数据进行逻辑复制,比如使用一部分行和列集。在复制出现冲突的情况下,比如复制的数据违反某些约束或存在权限冲突,用户可以选择跳过冲突事务或禁用订阅功能。

增加并行化

使用多个工作进程执行查询是 PostgreSQL 发展的另一部分。在版本 15的SELECT DISTINCT中,从输出中删除重复行的查询将使用并行工作器提高性能。

JSON Log

将日志数据输出为JSON结构,有助于客户端进行日志处理与结构化输出。这种“结构化日志”也可以被其它程序用于存储与分析。

压缩选项

在15中,可以选择Zstandard和ZL4代替pglz作为 WAL 压缩方法。WAL 压缩算法可以减少磁盘空间使用,同时保护数据完整性。

当使用提供的 pg basebackup 扩展进行数据库备份时,用户还可以选择 _Zstandard或ZL4来压缩服务器端的数据库备份,从而减少通过网络传输的数据。

新的 POSIX 正则表达式函数

几个新推出的正则表达式函数对字符串处理很有用,例如 regexp_substr()、regexp_count() 等。

共享内存中的服务器统计信息

从 PostgreSQL 15 开始,服务器级统计信息(以前是单独的统计信息收集器进程的一部分)存储在共享内存中。这消除了单独的统计信息收集器进程。PostgreSQL 跟踪每个进程的所有活动以获得累积统计信息,并且所有信息都可以通过不同的 pg_stat_* 视图获得。

应该升级到PostgreSQL 15吗?

切换到新的 PostgreSQL 主要原因是是它提供了大量错误修复。错误修复不像新功能或性能改进那样明显,但它们会产生更大的影响。虽然一些错误修复适用于以前的版本,但这些更改需要修改 API、接口函数和系统目录结构,这在已经发布的主要版本中通常是不可能的。

因此,用户应该更新以提高稳定性。

由于每 4 月的新功能的代码冻结和 10 月的稳定版本之间有半年稳定期,因此升级是安全的。在选择升级之前,不要忘记查看升级前后需要手动操作的状况列表以及PG 15 升级日志。

在2022年的数据库调查中,PostgreSQL是最受广泛使用的数据库之一。同时也是DB-Engines 中最受欢迎的数据库之一。

以下是Google Trends的数据:

图片

不管理PG现在有多流行,针对于专业用户来说,最重要的是了解自己的开发用例,利用哪些功能来使自己的 PostgreSQL 发挥到最佳性能。

作者:陈根

参考:

https://www.percona.com/blog/postgresql-15-new-features-to-be-excited-about/

评论