暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文] PostgreSQL 13 中有哪些新功能?

原创 Sebastian Insausti 2021-09-03
1189

PostgreSQL,也被称为世界上最先进的开源数据库,从去年 2020 年 9 月 24 日开始有一个新的发布版本,现在它已经成熟了,我们可以看看那里有什么新东西,开始考虑迁移计划。PostgreSQL 13 提供了许多新功能和增强功能。在本文中,我们将提及其中一些新功能,并了解如何部署或升级您当前的 PostgreSQL 版本。

PostgreSQL 13 新特性和改进

让我们开始提一下这个 PostgreSQL 13 版本的一些新特性和改进,你可以在官方文档中看到。

分区

  • 允许在更多情况下修剪分区和分区连接
  • 支持分区表上的行级 BEFORE 触发器
  • 允许通过发布逻辑复制分区表
  • 允许逻辑复制到订阅者的分区表中
  • 允许在分区表达式中使用整行变量

索引

  • 更有效地在 B 树索引中存储重复项
  • 允许框列上的 GiST 和 SP-GiST 索引以支持 ORDER BY 框 <-> 点查询
  • 让 GIN 索引更有效地处理!tsquery 搜索中的 (NOT) 子句
  • 允许索引运算符类带参数

优化器

  • 改进优化器对包含/匹配操作符的选择性估计
  • 允许为扩展统计设置统计目标
  • 允许在单个查询中使用多个扩展统计对象
  • 允许为 OR 子句和 IN/ANY 常量列表使用扩展统计对象
  • 如果 FROM 子句中的函数求值为常量,则允许它们被拉起(内联)

表现

  • 实现增量排序,提高对inet值排序的性能
  • 允许散列聚合将磁盘存储用于大型聚合结果集
  • 允许插入(不仅是更新和删除)来触发 autovacuum 中的清理活动
  • 添加maintenance_io_concurrency参数,控制维护操作的I/O并发
  • 如果 wal_level 最小,则允许在创建或重写关系的事务期间跳过 WAL 写入
  • 在使用多个表空间时重放 DROP DATABASE 命令时提高性能
  • 加速整数到文本的转换
  • 减少包含许多 SQL 语句的查询字符串和扩展脚本的内存使用量

监控

  • 允许 EXPLAIN、auto_explain、autovacuum 和 pg_stat_statements 跟踪 WAL 使用统计信息
  • 允许记录 SQL 语句样本,而不是所有语句
  • 将后端类型添加到 csvlog 和可选的 log_line_prefix 日志输出
  • 改进对准备好的语句参数日志记录的控制
  • 将 leader_pid 添加到 pg_stat_activity 以报告并行工作者的领导进程
  • 添加系统视图 pg_stat_progress_basebackup 以报告流式基础备份的进度
  • 添加系统视图 pg_stat_progress_analyze 报告 ANALYZE 进度
  • 添加系统视图 pg_shmem_allocations 显示共享内存使用情况

复制和恢复

  • 允许通过重新加载来更改流式复制配置设置
  • 当未指定永久复制槽时,允许 WAL 接收器使用临时复制槽
  • 允许复制槽的 WAL 存储受 max_slot_wal_keep_size 限制
  • 允许备用促销取消任何请求的暂停
  • 如果恢复未达到指定的恢复目标,则生成错误
  • 允许控制逻辑解码在溢出到磁盘之前使用多少内存
  • 即使 WAL 引用了无效页面,也允许恢复继续

实用命令

  • 允许 VACUUM 并行处理表的索引
  • 在 EXPLAIN 的 BUFFER 输出中报告计划时间缓冲区的使用情况
  • 使 CREATE TABLE LIKE 将 CHECK 约束的 NO INHERIT 属性传播到创建的表
  • 添加 ALTER TABLE … DROP EXPRESSION 以允许从列中删除 GENERATED 属性
  • 添加 ALTER VIEW 语法以重命名视图列
  • 添加 ALTER TYPE 选项以修改基本类型的 TOAST 属性和支持功能
  • 添加 CREATE DATABASE LOCALE 选项
  • 允许 DROP DATABASE 断开使用目标数据库的会话,从而允许删除成功

还有更多变化。我们只是提到了其中的一些,以避免发布更大的博客文章。现在,让我们看看如何部署这个新版本。

如何部署 PostgreSQL 13

为此,我们假设您已经安装了 ClusterControl,否则您可以按照相应的文档进行安装。

要从ClusterControl执行部署,只需选择 Deploy 选项并按照出现的说明进行操作。

image.png

选择PostgreSQL 时,您必须指定用户、密钥或密码以及端口以通过 SSH 连接到您的服务器。如果您希望ClusterControl为您安装相应的软件和配置,您还可以为新集群添加一个名称。

image.png

设置 SSH 访问信息后,您需要定义数据库凭据、版本和数据目录(可选)。您还可以指定要使用的存储库。

在下一步中,您需要将您的服务器添加到您将使用 IP 地址或主机名创建的集群中。

image.png

在最后一步中,您可以选择您的复制是同步还是异步,然后只需按部署。

image.png

任务完成后,您可以在 ClusterControl 主屏幕中看到您的新 PostgreSQL 集群。
image.png
现在您已经创建了集群,您可以在其上执行多项任务,例如添加负载均衡器 (HAProxy)、连接池器 (PgBouncer) 或来自同一 ClusterControl UI 的新复制从属

升级到 PostgreSQL 13

可以查看这篇文章

关于 PostgreSQL 13 新特性的更多详细信息,您可以参考官方文档

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论