天天看點

PostgreSQL 并行計算解說 彙總

标簽

PostgreSQL , cpu 并行 , smp 并行 , 并行計算 , gpu 并行 , 并行過程支援

https://github.com/digoal/blog/blob/master/201903/20190318_05.md#%E8%83%8C%E6%99%AF 背景

PostgreSQL 11 優化器已經支援了非常多場合的并行。簡單估計,已支援幾十種場景的并行計算。

并行計算到底帶來了多大的性能提升?

是否滿足實時分析的需求?

是否可以支援OLTP與OLAP混合業務使用?

《PostgreSQL 多模, 多應用場景實踐》

https://github.com/digoal/blog/blob/master/201903/20190318_05.md#postgresql-11-%E5%B9%B6%E8%A1%8C%E8%AE%A1%E7%AE%97%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%E6%80%A7%E8%83%BD%E6%8F%90%E5%8D%87%E5%80%8D%E6%95%B0 PostgreSQL 11 并行計算使用場景、性能提升倍數

場景 資料量 關閉并行 開啟并行 并行度 開啟并行性能提升倍數
全表掃描 10 億 53.4 秒 1.8 秒 32 29.7 倍
條件過濾 1.87 秒 28.6 倍
哈希聚合 142.3 秒 4.8 秒 30 29.6 倍
分組聚合
select into 54.5 秒 1.9 秒 28.7 倍
create table as 54.7 秒 2 秒 27.35 倍
CREATE MATERIALIZED VIEW
create index 964 秒 252 秒 3.83 倍
parallel CREATE INDEX CONCURRENTLY - 不堵塞讀寫 10億 509.6 秒 355 秒 16 1.44 倍
排序 76.9 秒 2.75 秒 28 倍
自定義并行聚合1(求 distinct 數組 字段元素、以及count distinct) 298.8 秒 8.7 秒 36 34.3 倍
自定義并行聚合2(求 distinct 普通 字段元素、以及count distinct) 96.5 秒 3.43 秒
自定義并行函數(UDF) 456 秒 16.5 秒 27.6 倍
普通并行(gather) 70.2 秒 2.5 秒 28.1 倍
歸并并行(gather merge) 78.2 秒 2.76 秒 28.3 倍
rc (ud agg count distinct) 107 秒 3.65 秒 29.3 倍
rr (ud agg count distinct)
parallel OLAP : 中間結果 parallel with unlogged table ; unlogged table并行求avg case 73.6 秒 29.44 倍
parallel index scan 19 秒 1.58 秒 20 12 倍
parallel bitmap scan 23.98 秒 15.86 秒 1.5 倍
parallel index only scan 8 秒 0.6 秒 13.33 倍
parallel nestloop join 10億 join 10億 using (i) where t1.i<10000000 14.4 秒 4.6 秒 8 3.13 倍
parallel merge join 3.2 秒 1 秒 3.2 倍
parallel hash join 10億 join 10億 using (i) where t1.i<10000000 and t2.i<10000000 8.1 秒 8.1 倍
10億 join 10億 using (i) 1071 秒 92.3 秒 11.6 倍
parallel partition table wise join 1006 秒 76 秒 24 13.2 倍
parallel partition table wise agg 191 秒 23.9 倍
parallel append 70.5 秒 3.16 秒 22.3 倍
parallel append merge 99.4 秒 5.87 秒 16.93 倍
parallel union all 99 秒 5.6 秒 17.68 倍
parallel CTE 65.65 秒 3.33 秒 19.7 倍
parallel 遞歸查詢, 樹狀查詢, 異構查詢, CTE, recursive CTE, connect by 異構資料1億,日志資料10億 5.14 秒 0.29 秒 17.7 倍
parallel scan mult FDW tables (通過繼承表方式) 180 秒 7.8 秒 23.1 倍
parallel scan mult FDW tables (通過union all) 165.6 秒 27.8 秒 5 6 倍
parallel leader process 186 秒 95 秒 1 2 倍
parallel subquery 20億 179.7 秒 6.5 秒 28

每一項性能提升的測試CASE請見參考部分。

https://github.com/digoal/blog/blob/master/201903/20190318_05.md#%E5%8F%82%E8%80%83 參考

《PostgreSQL 并行計算解說 之29 - parallel 遞歸查詢, 樹狀查詢, 異構查詢, CTE, recursive CTE, connect by》 《PostgreSQL 并行計算解說 之28 - parallel CREATE INDEX CONCURRENTLY - 不堵塞讀寫》 《PostgreSQL 并行計算解說 之27 - parallel subquery》 《PostgreSQL 并行計算解說 之26 - parallel gather | gathermerge - enable leader worker process》 《PostgreSQL 并行計算解說 之25 - parallel FDW scan (并行通路多個外部表) with parallel append (FDW must with IsForeignScanParallelSafe)》 《PostgreSQL 并行計算解說 之24 - parallel CTE (Common Table Express)》 《PostgreSQL 并行計算解說 之23 - parallel union all》 《PostgreSQL 并行計算解說 之23 - parallel append merge》 《PostgreSQL 并行計算解說 之22 - parallel append》 《PostgreSQL 并行計算解說 之21 - parallel partition table wise agg》 《PostgreSQL 并行計算解說 之20 - parallel partition table wise join》 《PostgreSQL 并行計算解說 之19 - parallel hash join》 《PostgreSQL 并行計算解說 之18 - parallel merge join》 《PostgreSQL 并行計算解說 之17 - parallel nestloop join》 《PostgreSQL 并行計算解說 之16 - parallel index only scan》 《PostgreSQL 并行計算解說 之15 - parallel bitmap scan》 《PostgreSQL 并行計算解說 之14 - parallel index scan》 《PostgreSQL 并行計算解說 之13 - parallel OLAP : 中間結果 parallel with unlogged table》 《PostgreSQL 并行計算解說 之12 - parallel in rc,rr 隔離級别》 《PostgreSQL 并行計算解說 之11 - parallel gather, gather merge》 《PostgreSQL 并行計算解說 之10 - parallel 自定義并行函數(UDF)》 《PostgreSQL 并行計算解說 之9 - parallel 自定義并行聚合》 《PostgreSQL 并行計算解說 之8 - parallel sort》 《PostgreSQL 并行計算解說 之7 - parallel create index》 《PostgreSQL 并行計算解說 之6 - parallel CREATE MATERIALIZED VIEW》 《PostgreSQL 并行計算解說 之5 - parallel create table as》 《PostgreSQL 并行計算解說 之4 - parallel select into》 《PostgreSQL 并行計算解說 之3 - parallel agg》 《PostgreSQL 并行計算解說 之2 - parallel filter》 《PostgreSQL 并行計算解說 之1 - parallel seq scan》

https://github.com/digoal/blog/blob/master/201903/20190318_05.md#%E5%85%8D%E8%B4%B9%E9%A2%86%E5%8F%96%E9%98%BF%E9%87%8C%E4%BA%91rds-postgresql%E5%AE%9E%E4%BE%8Becs%E8%99%9A%E6%8B%9F%E6%9C%BA 免費領取阿裡雲RDS PostgreSQL執行個體、ECS虛拟機

PostgreSQL 并行計算解說 彙總

繼續閱讀