enable_memoize 是一个 配置参数,用于确定查询规划器是否使用 memoize 计划来缓存嵌套循环连接内部参数化扫描的结果。
enable_memoize 添加于 PostgreSQL 14。
默认值
enable_memoize 的默认值为:on。
按 PostgreSQL 版本详细信息
enable_memoize (PostgreSQL 19)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
enable_memoize (PostgreSQL 18)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
enable_memoize (PostgreSQL 17)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
enable_memoize (PostgreSQL 16)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
enable_memoize (PostgreSQL 15)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
enable_memoize (PostgreSQL 14)
| 设置 | 开启 |
| 单位 | |
| 类别 | 查询调优 / 规划器方法配置 |
| 简短描述 | 启用规划器的记忆化功能。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
参考资料
- PostgreSQL 文档: enable_memoize
有用链接
- PostgreSQL 14 的 enable_memoize 以提高嵌套循环连接的性能 - 2021 年 11 月 Lukas Eder 的博客文章
