enable_indexscan

控制索引扫描使用的 GUC

enable_indexscan 是一个 配置参数,用于确定规划器是否应使用索引扫描。

enable_indexscanPostgreSQL 7.0 中添加。

默认

enable_indexscan 的默认值为:on

用法

请注意,如果 enable_indexscan 被禁用,enable_indexonlyscan 也将被禁用,即使它被设置为 on

按 PostgreSQL 版本详细信息

enable_indexscan (PostgreSQL 19)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 18)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 17)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 16)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 15)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 14)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 13)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 12)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 11)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 10)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 9.6)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 9.5)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档enable_indexscan

enable_indexscan (PostgreSQL 9.4)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 9.3)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 9.2)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 9.1)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 9.0)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 8.4)

设置 开启
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档enable_indexscan

enable_indexscan (PostgreSQL 8.3)

设置  
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  

文档enable_indexscan

enable_indexscan (PostgreSQL 8.2)

设置  
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用索引扫描计划。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  

文档enable_indexscan

变更历史

示例

enable_indexscan 的基本用法示例

postgres=# CREATE TABLE foo (id INT NOT NULL PRIMARY KEY);
CREATE TABLE

postgres=# INSERT INTO foo VALUES (generate_series(1,10000));
INSERT 0 10000

postgres=# ANALYZE foo;

postgres=# SET enable_indexonlyscan TO off;
SET

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 99 AND 3024;
                               QUERY PLAN                                
-------------------------------------------------------------------------
 Index Scan using foo_pkey on foo  (cost=0.29..111.81 rows=2926 width=4)
   Index Cond: ((id >= 99) AND (id <= 3024))
(2 rows)

请注意,在上述场景中,默认情况下很可能会选择一个索引扫描,因此为了本示例的目的,enable_indexonlyscan 已被禁用,以强制执行索引扫描。

enable_indexscan 设置为 off

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 99 AND 3024;
                                QUERY PLAN                                 
---------------------------------------------------------------------------
 Bitmap Heap Scan on foo  (cost=66.28..155.17 rows=2926 width=4)
   Recheck Cond: ((id >= 99) AND (id <= 3024))
   ->  Bitmap Index Scan on foo_pkey  (cost=0.00..65.55 rows=2926 width=0)
         Index Cond: ((id >= 99) AND (id <= 3024))
(4 rows)

分类

GUC 配置项, 索引, 规划器

另请参阅

enable_indexonlyscan

反馈

提交您对“enable_indexscan”的任何评论、建议或更正 在此处