本节简单介绍了PostgreSQL并行的历史和未来的发展。
9.6
PG的并行执行从9.6开始引入,增加了顺序扫描,连接和聚合操作的并行执行.
10
PG 10对并行的增强包括:
1.支持并行B-tree索引扫描
2.支持并行bitmap heap scans
3.支持merge join并行执行
4.支持非相关non-correlated子查询并行执行
5.预排序数据的并行处理并返回
6.在过程语言中增加并行查询
11
PG 11对并行的增强包括:
1.并行创建btree索引
2.使用共享hash table的情况下并行hash join
3.并行执行CREATE TABLE … AS/SELECT INTO/CREATE MATERIALED VIEW
4.如单个SELECT无法并行则并行执行UNION中的各个子查询
5.传递LIMIT到并行worker中,这可以规约返回结果并使用索引扫描
6.支持single-evaluation查询的并行执行,如WHERE语句中的聚合查询和投影列中的函数
12
PG 12对并行的增强包括:
1.在SERIALIZABLE 隔离模式下支持并行查询
13
PG 13对并行的增强包括:
1.并行VACUUM.处理索引时可以启动多个worker
2.增强EXPLAIN对每个worker的信息显示
3.在并行hash join时避免不必要的SHM写
未来
未来可能的增强包括:
1.并行的grouping sets操作
2.并行copy命令
3.并行的file_fdw
4.并行DML(inset/update/delete…)