default_toast_compression
确定默认 TOAST 压缩方法的配置参数
default_toast_compression
是一个 配置参数,用于确定新创建表的列的默认 TOAST
压缩方法。
default_toast_compression
在 PostgreSQL 14 中添加。
用法
default_toast_compression
可以是以下之一:
pglz
lz4
请注意,lz4
要求 PostgreSQL 使用选项 --with-lz4
编译。
要确定 lz4
是否可用,请执行以下查询:
postgres=# SELECT true FROM pg_config WHERE name = 'LIBS' and setting like '%lz4%'; bool ------ t (1 row)
默认值
default_toast_compression
的默认值为:pglz
。
按 PostgreSQL 版本分列的详细信息
default_toast_compression (PostgreSQL 17)
设置 | pglz |
单位 | |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置可压缩值的默认压缩方法。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | pglz, lz4 |
引导值 | pglz |
重置值 | pglz |
源文件 | |
源代码行号 | |
待重启 | false |
default_toast_compression (PostgreSQL 16)
设置 | pglz |
单位 | |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置可压缩值的默认压缩方法。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | pglz, lz4 |
引导值 | pglz |
重置值 | pglz |
源文件 | |
源代码行号 | |
待重启 | false |
default_toast_compression (PostgreSQL 15)
设置 | pglz |
单位 | |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置可压缩值的默认压缩方法。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | pglz, lz4 |
引导值 | pglz |
重置值 | pglz |
源文件 | |
源代码行号 | |
待重启 | false |
default_toast_compression (PostgreSQL 14)
设置 | pglz |
单位 | |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置可压缩值的默认压缩方法。 |
额外描述 | |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | pglz, lz4 |
引导值 | pglz |
重置值 | pglz |
源文件 | |
源代码行号 | |
待重启 | false |
更改历史记录
- PostgreSQL 14
- 添加 (提交 bbe0a81d)
示例
默认情况下,可使用 TOAST 的表将使用 pglz
压缩类型创建。
postgres=# CREATE TABLE foo (val1 TEXT); CREATE TABLE postgres=# \d+ foo Table "public.foo" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description --------+------+-----------+----------+---------+----------+-------------+--------------+------------- val1 | text | | | | extended | pglz | | Access method: heap
将 default_toast_compression
设置为 lz4(如果可用)
postgres=# ALTER SYSTEM SET default_toast_compression='lz4'; ALTER SYSTEM postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) postgres=# ALTER TABLE foo ADD val2 TEXT; ALTER TABLE postgres=# \d+ foo Table "public.foo" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description --------+------+-----------+----------+---------+----------+-------------+--------------+------------- val1 | text | | | | extended | pglz | | val2 | text | | | | extended | lz4 | | Access method: heap
请注意,只有在 PostgreSQL 使用 --with-lz4
编译的情况下,才能将 default_toast_compression
设置为 lz4
,否则将引发错误。
postgres=# ALTER SYSTEM SET default_toast_compression='lz4'; ERROR: invalid value for parameter "default_toast_compression": "lz4" HINT: Available values: pglz
参考
- PostgreSQL 文档: default_toast_compression
有用链接
- 可配置的 LZ4 TOAST 压缩 - Dilip Kumar/EDB 于 2021 年 5 月发表的博文