控制并行的参数
从Pg9.6开始,postgresql开始支持并行查询,目前主要使用于顺序扫描、连接及聚合,sql是否顺序扫描,主要有以下一些参数来控制
force_parallel_mode
off :只在期望改进性能时才使用并行模式,生产建议设置为此参数;
on : 只要查询被认为是安全的,就强制使用并行查询,主要用来进行性能测试;
regress: 与on相似,测试输出效果会有点区别
max_worker_processes
设置系统能够支持的后台进程的最大数量,这个参数只能在服务器启动时设置,默认值为 8,修改此参数需要重启实例
max_parallel_workers
设置系统能够支持的最大并行工作者的数量,默认值是8
max_parallel_workers_per_gather
设置单个Gather节点能够开始的工作者的最大数量,并行工作者会从max_worker_processes建立的进程池中取得,但受限于max_parallel_workers,把这个值设置为 0(默认值)将会禁用并行查询执行。
min_parallel_table_scan_size
设置要考虑用于并行扫描的表的最小尺寸,默认是 8M
此参数设置的阈值与真实数据库表的大小差距越大,在执行相关表的并行查询过程中使用的work越多(个人经验总结)
min_parallel_index_scan_size
设置要考虑用于并行扫描的索引的最小尺寸, 默认是 512k
此参数设置的阈值与真实数据库索引的大小差距越大,在走相关索引的并行查询过程中使用的work越多(个人经验总结)
parallel_setup_cost
设置规划器对启动并行工作者进程的代价估计,默认是 1000。
parallel_tuple_cost
设置规划器对于从一个并行工作者进程传递一个元组给另一个进程的代价估计,默认是 0.1。