random_page_cost

一个 GUC 设置随机读取的磁盘页面的成本

random_page_cost 是一个 配置参数,用于设置查询规划器对非顺序读取的磁盘页面的成本估算。

random_page_costPostgreSQL 7.0 中添加。

默认

random_page_cost 的默认值为:4.0

用法

random_page_cost 是一个全局 GUC,对所有数据库都有效。但可以使用

ALTER TABLESPACE ... SET ( random_page_cost = ...)

如果不同值对于存储介质更合适。请注意,如果为表空间设置了该参数,random_page_cost 将无法被覆盖。

按 PostgreSQL 版本详细信息

random_page_cost (PostgreSQL 19)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 18)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 17)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 16)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 15)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 14)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 13)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 12)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 11)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 10)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 9.6)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 9.5)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  
需要重启 false

文档random_page_cost

random_page_cost (PostgreSQL 9.4)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 9.3)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 9.2)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 9.1)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 9.0)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 8.4)

设置 4
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源行  

文档random_page_cost

random_page_cost (PostgreSQL 8.3)

设置  
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308

文档random_page_cost

random_page_cost (PostgreSQL 8.2)

设置  
单位  
类别 查询调优 / 优化器成本常量
简短描述 设置规划器对非顺序读取的磁盘页面的成本估算。
扩展描述  
上下文 user
变量类型 实数
来源 默认
最小值 0
最大值 1.79769e+308

文档random_page_cost

变更历史

示例

给定一个任意大的表,当 random_page_cost 设置为默认值 4 时,PostgreSQL 会选择索引扫描。

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

postgres=# INSERT INTO foo values(generate_series(1,10000000));
INSERT 0 10000000

postgres=# SHOW random_page_cost;
 random_page_cost 
------------------
 4
(1 row)

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 1000000 and 2000000;
                                    QUERY PLAN                                     
-----------------------------------------------------------------------------------
 Index Only Scan using foo_pkey on foo  (cost=0.43..32073.10 rows=1035633 width=4)
   Index Cond: ((id >= 1000000) AND (id <= 2000000))
(2 rows)

然而,如果 random_page_cost 被设置为一个(不切实际地高的)值,PostgreSQL 将会认为顺序扫描更有效率(尽管在现实中可能并非如此)。

postgres=# SET random_page_cost to 4000;
SET

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 1000000 and 2000000;
                          QUERY PLAN                          
--------------------------------------------------------------
 Seq Scan on foo  (cost=0.00..194248.72 rows=1035633 width=4)
   Filter: ((id >= 1000000) AND (id <= 2000000))
(2 rows)

分类

GUC 配置项, 规划器

另请参阅

seq_page_cost, cpu_tuple_cost, cpu_index_tuple_cost, cpu_operator_cost

反馈

请在此处提交关于“random_page_cost”的任何评论、建议或更正。 这里