PostgreSQL 15 DBMS 发布

经过一年的开发,PostgreSQL 15 DBMS的新稳定分支已经发布,新分支的更新将在五年内发布,直到2027年XNUMX月。

主要创新:

  • 添加了对 SQL 命令“MERGE”的支持,该命令类似于表达式“INSERT ... ON CONFLICT”。 MERGE 允许您创建将 INSERT、UPDATE 和 DELETE 操作组合到单个表达式中的条件 SQL 语句。 例如,使用 MERGE,您可以通过插入缺失记录并更新现有记录来合并两个表。 合并到 customer_account ca 使用最近的交易 t ON t.customer_id = ca.customer_id 当匹配时更新 SET 余额 = 余额 + transaction_value 当不匹配时插入 (customer_id, 余额) VALUES (t.customer_id, t.transaction_value);
  • 内存和磁盘上的数据排序算法得到了显着改进。 根据数据类型,测试显示排序速度从 25% 提高到 400%。
  • 使用 row_number()、rank()、dense_rank() 和 count() 的窗口函数已加速。
  • 已经实现了使用表达式“SELECT DISTINCT”并行执行查询的可能性。
  • 连接外部表外部数据包装器(postgres_fdw)的机制除了之前添加的异步处理外部服务器请求的功能之外,还实现了对异步提交的支持。
  • 新增使用LZ4和Zstandard(zstd)算法压缩WAL事务日志的能力,在某些工作负载下,可以同时提高性能并节省磁盘空间。 为了减少故障后的恢复时间,添加了对 WAL 日志中出现的页面的主动检索的支持。
  • pg_basebackup 实用程序添加了对使用 gzip、LZ4 或 zstd 方法对备份文件进行服务器端压缩的支持。 可以使用您自己的模块进行归档,从而无需运行 shell 命令。
  • 添加了一系列用于使用正则表达式处理字符串的新函数:regexp_count()、regexp_instr()、regexp_like() 和 regexp_substr()。
  • range_agg() 函数中添加了聚合多范围类型(​​“multirange”)的功能。
  • 添加了 security_invoker 模式,该模式允许您创建作为调用用户而不是视图创建者运行的视图。
  • 对于逻辑复制,已经实现了对过滤行和指定列列表的支持,允许发送方从表中选择数据子集进行复制。 此外,新版本还简化了冲突管理,例如,现在可以跳过冲突事务并在检测到错误时自动禁用订阅。 逻辑复制允许使用两阶段提交(2PC)。
  • 添加了新的日志格式 - jsonlog,它使用 JSON 格式以结构化形式保存信息。
  • 管理员可以将个人权限委托给用户以更改某些 PostgreSQL 服务器配置参数。
  • psql 实用程序添加了对使用“\dconfig”命令搜索有关设置 (pg_settings) 的信息的支持。
  • 确保使用共享内存来积累有关服务器操作的统计信息,这使得可以摆脱收集统计信息和定期将状态重置到磁盘的单独过程。
  • 已提供使用默认 ICU 区域设置“ICU Collat​​ion”的功能;以前,只有 libc 区域设置可以用作默认区域设置。
  • 已经提出了一个内置扩展 pg_walinspect,它允许您使用 SQL 查询检查带有 WAL 日志的文件内容。
  • 对于公共模式,除数据库所有者之外的所有用户执行 CREATE 命令的权限都已被撤销。
  • PL/Python 中已删除对 Python 2 的支持。过时的独占备份模式已删除。

添加:从 19:00 到 20:00(MSK),将有一个网络研讨会,与 Pavel Luzanov(Postgres Professional)讨论新版本中的更改。 对于那些无法参加广播的人,Pavel 在 PGConf.Russia 上的 15 月报告“PostgreSQL XNUMX:MERGE 及更多”的录制现已开放。

来源: opennet.ru

添加评论