暂无图片
掌握PostgreSQL新特性学习笔记三:PostgreSQL 11
最近更新:2022-03-11 14:21:05

国庆前夕PG14新版本发布了,当前主要还再使用PG12,趁着假期温习了一遍9.6到13的新特性,追一下新版本的差距。

PostgreSQL 11

数据库管理功能

数据库管理功能中让数据库更高效运行的功能之一应该是能够配置数据库实例运行时的大小,通常认为最应该被调整是WAL段文件。

可配置的WAL段大小

自PostgreSQL推出以来,单个WAL文件的大小始终如此是16MB。最开始,它甚至是一个可编译限制项,后来改为编译时的选项。从PostgreSQL 11开始,WAL段文件的大小可以在实例创建时更改,这为管理员提供了额外的配置和优化PostgreSQL的方法。

以下示例说明在数据库initdb的时候如何配置WAL段大小:

initdb -D /pgdata --wal-segsize=32

在大多数情况下,使用更大的段大小用来提高性能是显而易见的。除非你是在一个嵌入式系统中运行非常小的数据库实例。

那么WAL段大小真正产生的性能影响会是什么?如果您正在运行一个99%都是读的数据库系统,大的WAL段产生的影响将为零。如果面对的是写应用系统负载,并且95%空闲,没有严重负载,影响仍为零或接近零。只有您运行着一个写密集型工作负载的系统,你才会看到效果,这样改变WAL段大小才有价值。该新特性只有在产生大量WAL的场景才会显示其优势。

pg_stat_statements视图64位queryid

如果我们想深入理解PostgreSQL的性能,pg_stat_statements就是最好的工具。如果真的想弄清楚系统中发生了什么,它是一个黄金标准。一旦PostgreSQL服务启动,pg_stat_statements命令就会通过加载shared_preload_libraries并汇总有关服务器中运行的查询统计信息。如果出现问题,它会立即显示。

......