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 选项并按照出现的说明进行操作。
选择PostgreSQL 时,您必须指定用户、密钥或密码以及端口以通过 SSH 连接到您的服务器。如果您希望ClusterControl为您安装相应的软件和配置,您还可以为新集群添加一个名称。
设置 SSH 访问信息后,您需要定义数据库凭据、版本和数据目录(可选)。您还可以指定要使用的存储库。
在下一步中,您需要将您的服务器添加到您将使用 IP 地址或主机名创建的集群中。
在最后一步中,您可以选择您的复制是同步还是异步,然后只需按部署。
任务完成后,您可以在 ClusterControl 主屏幕中看到您的新 PostgreSQL 集群。
现在您已经创建了集群,您可以在其上执行多项任务,例如添加负载均衡器 (HAProxy)、连接池器 (PgBouncer) 或来自同一 ClusterControl UI 的新复制从属
升级到 PostgreSQL 13
可以查看这篇文章。
关于 PostgreSQL 13 新特性的更多详细信息,您可以参考官方文档。