祝贺,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/
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。