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 支持对分区表和分区表上的索引操作

系统视图

  • 加了下面这几个系统视图

    1. pg_backend_memory_contexts :查看当前进程的内存使用情况
    2. pg_stat_progress_copy :展示copy进度
    3. pg_stat_replication_slots :跟踪从RecordBuffer中溢出的变更
    4. pg_stat_wal:跟踪WAL的活动情况
  • pg_locks里面追加了一列waitstart来记录锁等开始时间

流复制变更

  • 如果主库的参数发生变更,主备的参数产生冲突,这时流复制会暂停,而不是像之前直接断开。DBA恢复参数设置之后,流复制可以恢复

命令变更

  • initdb加了个--no-instructions选项,加上这个选项,会取消一些输出消息,比如server启动时的消息输出,对于软件内包版的数据库场景可能比较友好