PG14目前还没发布,截止目前能看到的更新里面,有些还是挺不错的,后面可以测测具体效果如何,先罗列一波~
参数变更
- 追加参数
idle_session_timeout
- 追加参数
track_wal_io_timing
,开了可能有性能下降,具体还没测,应该和track_io_timing
这个参数类似的
后端的变更
- COPY性能提升
从commit内容来看,改善了COPY读buffer的性能,简单测试有30%的性能提升,对于Linux平台下的文本类型字段做COPY - CREATE PROCEDURE语法支持OUT参数
- 执行计划多了一种TID范围扫描类型,比如where ctid > ‘(10,0)’这种条件
- copy freeze之后的第一次vacuum不再需要重写整个page
- vacuum追加了一个控制项PROCESS_TOAST,当vacuum一张表的时候,可以选择是否vacuum他的toast表
SQL
- insert into xxx select语法中,select支持并行查询
- reindex 支持指定表空间(在线和离线模式都支持)
- reindex 支持对分区表和分区表上的索引操作
系统视图
加了下面这几个系统视图
pg_backend_memory_contexts :查看当前进程的内存使用情况
pg_stat_progress_copy :展示copy进度
pg_stat_replication_slots :跟踪从RecordBuffer中溢出的变更
pg_stat_wal:跟踪WAL的活动情况
pg_locks
里面追加了一列waitstart来记录锁等开始时间
流复制变更
- 如果主库的参数发生变更,主备的参数产生冲突,这时流复制会暂停,而不是像之前直接断开。DBA恢复参数设置之后,流复制可以恢复
命令变更
initdb
加了个--no-instructions
选项,加上这个选项,会取消一些输出消息,比如server启动时的消息输出,对于软件内包版的数据库场景可能比较友好