帕维尔·卢扎诺夫:PostgreSQL 19:第1部分或2025年7月提交节

帕维尔·卢扎诺夫:PostgreSQL 19:第1部分或2025年7月提交节

💡 原文英文,约1500词,阅读约需6分钟。
📝

内容提要

PostgreSQL 19引入了多个新特性,如通过servicefile参数指定连接服务文件、regdatabase类型的对象标识符、pg_stat_statements视图的新列以及FETCH命令的规范化。这些改进提升了查询性能和用户体验。

🎯

关键要点

  • PostgreSQL 19引入了servicefile参数,可以在连接字符串中指定连接服务文件的名称。
  • 新增regdatabase类型,支持数据库名称与标识符之间的双向转换。
  • pg_stat_statements视图新增两列,跟踪查询执行中选择的通用计划和自定义计划的次数。
  • FETCH命令规范化,获取不同数量行的FETCH命令将共享相同的查询标识符。
  • 版本19中,IN子句的常量列表和参数列表都进行了规范化,提升了查询性能。
  • EXPLAIN输出现在包含Memoize节点的估算信息,帮助理解规划器的选择。
  • btree_gin扩展改进,支持int2、int4和int8类型的自动类型转换以用于索引。
  • pg_dump的--binary-upgrade参数生成COPY命令,提升大对象的恢复速度。
  • 临时表的截断优化,减少了对本地缓冲区缓存的扫描次数。
  • 规划器现在可以利用增量排序,优化嵌套在Append或MergeAppend中的节点。
  • ALTER DOMAIN … VALIDATE CONSTRAINT …命令使用更轻的锁,允许并发修改。
  • CHECKPOINT命令支持新参数,帮助减少服务器重启时间。
  • COPY命令的header参数现在接受正数,指定在加载数据前跳过的初始行数。
  • 新增系统视图pg_dsm_registry_allocations,提供动态共享内存分配的信息。

延伸问答

PostgreSQL 19的新特性有哪些?

PostgreSQL 19引入了servicefile参数、regdatabase类型、pg_stat_statements视图的新列、FETCH命令的规范化等多个新特性。

如何使用servicefile参数连接PostgreSQL?

可以在连接字符串中通过servicefile参数指定连接服务文件的名称,例如:psql 'servicefile=./demo.conf service=demo'。

pg_stat_statements视图新增了哪些功能?

pg_stat_statements视图新增了两列,用于跟踪查询执行中选择的通用计划和自定义计划的次数。

FETCH命令在PostgreSQL 19中有什么变化?

FETCH命令的规范化使得获取不同数量行的FETCH命令共享相同的查询标识符,简化了查询记录。

ALTER DOMAIN命令在PostgreSQL 19中有什么改进?

ALTER DOMAIN … VALIDATE CONSTRAINT …命令现在使用更轻的锁,允许并发修改而不阻塞。

CHECKPOINT命令的新参数有什么作用?

CHECKPOINT命令现在支持新参数,帮助减少服务器重启时间,特别是在使用未记录表时。

➡️

继续阅读