postgresql的并行查询

postgresql的并行查询

  • 9.6版本之前不支持并行查询,9.6+版本支持并行查询有限,10+版本增强并行查询功能
  • 10版本暂不支持非btree索引类型的并行索引扫描

并行查询的相关参数

##设置系统支持的最大后台进程数,备库需要大于或等于主库的
max_worker_processes

##设置系统支持的并行查询进程数,默认8
max_parallel_workers

##设置允许启用的并行进程的进程数
max_parallel_workers_per_gather

##设置优化器启动并行进程的成本
parallel_setup_cost

##设置优化器通过并行进程处理一行数据的成本
parallel_tuple_cost

##设置开启并行的条件之一,表占用空间小于此值将不会开启并行
min_parallel_table_scan_size

##设置开启并行的条件之一,实际上并行索引扫描不会扫描所有所有数据块,只扫描索引相关的数据块
min_parallel_index_scan_size

##强制开启并行,一般作为测试目的,生产环境不建议使用,一般不建议开启
force_parallel_mode

三个配置参数关系通常:
max_worker_processes > max_parallel_workers > max_parallel_workers_per_gather

1.并行顺序扫描
seq scan …
parallel seq scan on …

2.并行索引扫描
index scan using …
parallel index scan …

3.并行index-only扫描
index only scan using …
parallel index only scan …

4.并行bitmap heap扫描
当sql的where条件中出现or时很有可能出现bitmap index扫描
bitmap index scan

5.多表联级

  • nested loop多表关联,实际上是一个嵌套循环
  • merge join多表关联,先对表进行排序后再进行关联字段匹配
  • hash join多表关联,当关联字段没有索引情况下两表关联通常会进行hash join
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值