下面这张图片描述了PG各个版本对并行特性的支持情况
从上面的图中可以看出:
-
PG从9.6版本正式开始支持并行特性,包括并行全表扫描及并行查询等。
-
从9.6到10增加了三个新并行特性,包括Parallel Merge Joins、Parallel B-tree Index Scan、Parallel bitmap heap scan。
-
从10到11增加了两个新并行特性,包括Parallelized CREATE INDEX for B-tree index、Parallel Hash Joins。
-
从12到13增加了一个新并行特性:Parallelized VACUUM for Indexes。
-
从13到14增加了三个新并行特性:包括Parallel query execution on remote databases、Foreign data wrapper query parallelism、Query parallelism for RETURN QUERY。
下面简单了解一下这些并行特性。
Parallel dump&restore
$ pg_dump --help |grep "\--jobs"
-j, --jobs=NUM use this many parallel jobs to dump
$ pg_restore --help |grep "\--jobs"
-j, --jobs=NUM use this many parallel jobs to restore
并行备份只能以备份目录的格式来进行,会对数据库服务器产生更多的负载来降低dump所需的时间。pg_dump会打开NUM+1个连接,所以数据库的max_connections要设置合理。
Parallel vacuumdb jobs
$ vacuumdb --help |grep "\--jobs"
-j, --jobs=NUM use this many concurrent connections to vacuum
$ vacuumdb --help |grep "\--parallel"
-P, --parallel=PARALLEL_DEGREE use this many background workers for vacuum, if available
vacuumdb会对所有的数据库做vacuum,–jobs参数使用并发的连接去做vacuum。这种方式能降低处理时间,但是会增加数据库服务器的负载。另外如果与full模式一起使用会对系统元数据目录产生死锁。第二个选项parallel是使用后台的workers进程来做。
Parallel Query
- PREARE and EXECUTE
Parallel Scan
- Parallel Seq Scan(full table scans)/Join and Aggregate
- Parallel B-tree Index Scan/Index Only Scan
- Parallel bitmap heap scan
Parallel Join
- Parallel Join, aggregate
- Parallel Merge Joins
- Parallel Hash Joins
Parallelized CREATE INDEX
- Parallelized CREATE INDEX for B-tree index。
Parallelized VACUUM for Indexes
单个table有多个索引时, 可以并行vacuum索引。
最后修改时间:2022-10-30 11:41:07
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。