PG并行查询加速分析
掌握PostgreSQL并行查询原理与配置,加速大数据分析 · 难度:入门 · +15XP
并行查询原理
PostgreSQL并行查询允许将查询分解为多个子任务,由多个工作进程同时执行,充分利用多核CPU。
关键参数
| 参数 | 作用 |
|---|---|
| max_parallel_workers_per_gather | 每个查询最大并行度 |
| parallel_setup_cost | 启动并行成本 |
| parallel_tuple_cost | 跨进程传输成本 |
启用并行查询
-- 设置并行度
SET max_parallel_workers_per_gather = 4;
-- 创建测试表
CREATE TABLE big_table AS
SELECT generate_series(1,1000000) AS id,
random() * 1000 AS value;
-- 并行聚合查询
EXPLAIN ANALYZE SELECT count(*), avg(value)
FROM big_table WHERE value > 500;
并行扫描类型
- Parallel Seq Scan:并行顺序扫描
- Parallel Index Scan:并行索引扫描
- Parallel Hash Join:并行哈希连接
练习提示
创建包含百万行数据的表,调整max_parallel_workers_per_gather从0到4,观察查询时间变化。