PostgreSQL并行查询相关配置参数

来源:这里教程网 时间:2026-03-14 20:27:19 作者:

1. max_worker_processes(integer) 设置系统支持的最大后台进程数,默认为8 如果备库设置,备库上此参数必须大于或等于主库上的此参数配置值 此参数调整,需要重启数据库生效

2. max_parallel_workers(integer) 设置系统支持的并行查询进程数,默认8 这个参数值不能高于max_worker_processes 调整这个参数,建议同时调整max_parallel_workers_per_gather参数值

3. max_parallel_workers_per_gather(integer) 设置允许启用的并行进程的进程数,默认2 设置成0,表示禁用并行进程

上述参数的设置关系约束如下:
max_worker_processes  > max_parallel_workers > max_parallel_workders_per_gather

4. parallel_setup_cost(floating point) 设置优化器启动并行进程的成本,默认为1000

5. parallel_tuple_cost(floating point) 设置优化器通过并行进程处理一行数据的成本,默认为0.1

6. min_parallel_table_scan_size(integer) 设置开启并行的条件之一,表占用空间小于此值将不会开启并行 并行顺序扫描场景下扫描的数据大小通常等于表大小,默认值8M

7. min_parallel_index_scan_size(integer) 设置开启并行的条件之一,实际上并行扫描不会扫描索引所有数据块 只是扫描索引相关数据块,默认值为512kb

8. force_parallel_mode(enum) 强制开启并行,一般作为测试目的

案例配置文件 postgresql.conf

max_worker_processes = 16
max_parallel_workers_per_gather = 4
max_parallel_workers = 8
parallel_tuple_cost = 0.1
parallel_setup_cost = 1000.0
min_parallel_table_scan_size = 8MB
min_parallel_index_scan_size = 512kB
force_parallel_mode = off

相关推荐