查询调优
条目 URL 保持扁平;本分类仅用于侧栏与浏览组织。
constraint_exclusion
constraint_exclusion:允许规划器利用约束排除不可能匹配的表。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 partition,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
cpu_index_tuple_cost
cpu_index_tuple_cost:设置规划器处理每个索引条目的成本估计。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.005,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
cpu_operator_cost
cpu_operator_cost:设置规划器执行每个操作符或函数调用的成本估计。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.0025,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
cpu_tuple_cost
cpu_tuple_cost:设置规划器处理每个元组(行)的成本估计。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.01,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
cursor_tuple_fraction
cursor_tuple_fraction:设置规划器对游标实际取回行比例的估计。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.1,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
default_statistics_target
为没有单独目标值的列设置 ANALYZE 默认统计细节级别。更多细节可能改善基数估算,但会增加统计收集时间和系统目录空间。
effective_cache_size
规划器对单条查询可用 PostgreSQL 数据缓存规模的估计;它影响成本计算,但不会分配内存。
enable_async_append
enable_async_append:允许规划器使用异步 Append 计划。实测在档范围为 PG14–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_bitmapscan
enable_bitmapscan:允许规划器使用位图扫描计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_distinct_reordering
enable_distinct_reordering:允许规划器重排 DISTINCT 键。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_eager_aggregate
enable_eager_aggregate:允许规划器把部分聚合提前推过连接。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_gathermerge
enable_gathermerge:允许规划器使用 Gather Merge 计划。实测在档范围为 PG10–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_group_by_reordering
enable_group_by_reordering:允许规划器重排 GROUP BY 键。实测在档范围为 PG17–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_hashagg
enable_hashagg:允许规划器使用哈希聚合计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_hashjoin
enable_hashjoin:允许规划器使用哈希连接计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_incremental_sort
enable_incremental_sort:允许规划器使用增量排序步骤。实测在档范围为 PG13–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_indexonlyscan
enable_indexonlyscan:允许规划器使用仅索引扫描计划。实测在档范围为 PG9.2–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_indexscan
enable_indexscan:允许规划器使用索引扫描计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_material
enable_material:允许规划器插入物化节点。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_memoize
enable_memoize:允许规划器使用 Memoize 缓存节点。实测在档范围为 PG14–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_mergejoin
enable_mergejoin:允许规划器使用归并连接计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_nestloop
enable_nestloop:允许规划器使用嵌套循环连接计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_parallel_append
enable_parallel_append:允许规划器使用并行感知的 Append 计划。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_parallel_hash
enable_parallel_hash:允许规划器使用并行哈希计划。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_partition_pruning
enable_partition_pruning:允许在规划和执行阶段裁剪分区。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_partitionwise_aggregate
enable_partitionwise_aggregate:允许按分区执行聚合与分组。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 off,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_partitionwise_join
enable_partitionwise_join:允许按匹配分区执行连接。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 off,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_presorted_aggregate
enable_presorted_aggregate:允许规划器为带 ORDER BY 或 DISTINCT 的聚合提供预排序输入。实测在档范围为 PG16–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_self_join_elimination
enable_self_join_elimination:允许消除可证明冗余的唯一自连接。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_seqscan
enable_seqscan:允许规划器使用顺序扫描计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_sort
enable_sort:允许规划器使用显式排序步骤。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
enable_tidscan
enable_tidscan:允许规划器使用 TID 扫描计划。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
from_collapse_limit
from_collapse_limit:设置不再折叠子查询的 FROM 列表规模阈值。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo
geqo:启用遗传查询优化。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_effort
geqo_effort:设置 GEQO 用于推导其他参数默认值的工作强度。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 5,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_generations
geqo_generations:设置 GEQO 算法迭代代数。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_pool_size
geqo_pool_size:设置 GEQO 种群中的个体数。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_seed
geqo_seed:设置 GEQO 随机路径选择的种子。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_selection_bias
geqo_selection_bias:设置 GEQO 种群内的选择压力。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 2,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
geqo_threshold
geqo_threshold:设置 FROM 项达到多少时改用 GEQO。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 12,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
jit
当构建包含可用的 JIT 实现且计划估算成本越过阈值时,允许 PostgreSQL 使用即时编译。开启并不意味着每条查询都会执行 JIT。
jit_above_cost
jit_above_cost:设置启用 JIT 编译的查询成本阈值。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 100000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
jit_inline_above_cost
jit_inline_above_cost:设置 JIT 尝试内联的查询成本阈值。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 500000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
jit_optimize_above_cost
jit_optimize_above_cost:设置 JIT 执行昂贵优化的查询成本阈值。实测在档范围为 PG11–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 500000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
join_collapse_limit
join_collapse_limit:设置不再展平 JOIN 构造的 FROM 列表规模阈值。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
min_eager_agg_group_size
min_eager_agg_group_size:设置考虑提前聚合所需的最小平均分组大小。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
min_parallel_index_scan_size
min_parallel_index_scan_size:设置考虑并行索引扫描所需的最小索引数据量。实测在档范围为 PG10–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 512 KiB (64 × 8kB),context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
min_parallel_relation_size
min_parallel_relation_size:设置可考虑并行扫描的关系最小尺寸。实测在档范围为 PG9.6;最后在档的 PG9.6 启动默认值为 8 MiB (1024 × 8kB),context 为 user。它在 PG10 被移除。
min_parallel_table_scan_size
min_parallel_table_scan_size:设置考虑并行表扫描所需的最小表数据量。实测在档范围为 PG10–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8 MiB (1024 × 8kB),context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
parallel_setup_cost
parallel_setup_cost:设置规划器启动并行工作进程的成本估计。实测在档范围为 PG9.6–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
parallel_tuple_cost
parallel_tuple_cost:设置把每行从并行 worker 传给 leader 的成本估计。实测在档范围为 PG9.6–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.1,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
plan_cache_mode
plan_cache_mode:控制规划器选择自定义计划还是通用计划。实测在档范围为 PG12–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 auto,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
random_page_cost
这是描述非顺序页面访问相对顺序访问成本的规划器常量。降低它会让索引和位图访问路径显得更便宜,但不会改变存储系统本身的行为。
recursive_worktable_factor
recursive_worktable_factor:设置递归查询工作表平均大小的规划器估计倍数。实测在档范围为 PG15–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 10,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
seq_page_cost
seq_page_cost:设置规划器顺序读取磁盘页面的成本估计。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。