PostgreSQL并行查询相关配置参数

Posted PostgreSQLChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL并行查询相关配置参数相关的知识,希望对你有一定的参考价值。

作者:阎书利

  1. max_worker_processes(integer)

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

  1. max_parallel_workers(integer)

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

  1. max_parallel_workers_per_gather(integer)

设置允许启用的并行进程的进程数,默认2
设置成0,表示禁用并行进程

上述参数的设置关系约束如下:
max_worker_processes  > max_parallel_workers > max_parallel_workders_per_gather
  1. parallel_setup_cost(floating point)

设置优化器启动并行进程的成本,默认为1000

  1. parallel_tuple_cost(floating point)

设置优化器通过并行进程处理一行数据的成本,默认为0.1

  1. min_parallel_table_scan_size(integer)

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

  1. min_parallel_index_scan_size(integer)

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

  1. 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

以上是关于PostgreSQL并行查询相关配置参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 SPI 的 PostgreSQL 并行查询可能吗?

PostgreSQL 是不是并行查询分区?

PostgreSQL 12.2 公开课及视频及PGCE认证(第9期)(CUUG)(2020年)

PostgreSQL:如何在函数中并行运行查询?

PostgreSQL CTE 的一般并行性

PostgreSQL 11 对索引应该足够的分区表进行并行 seq 扫描