AnalyticDB PostgreSQL版同時搭載了兩套優化器:TP優化器和AP優化器,前者更適合TP場景中的簡單查詢SQL、后者適合AP場景的復雜查詢SQL。AnalyticDB PostgreSQL版針對HTAP場景進行了不同的優化,極大地提升了數據庫性能。

MagicSet下推

MagicSet下推是適用于OLAP的一個高效的優化器改寫規則,其利用MagicSet提供的filtering能力,降低在大表上聚合的代價,并降低同聚合結果join的代價,從而達到減少聚合的負擔及提高與聚合結果join的性能的效果。AnalyticDB PostgreSQL版優化器將MagicSet下推改寫規則引入,部分OLAP場景可以獲得較大的性能提升。

Filter動態調整

對于Filter算子的scalar boolean表達式,執行引擎通常可以采用filter短路的技術優化提升執行效率。例如:
condition_1  AND condition_2 AND ... condition_k 

在計算上述表達式的時候,如果condition_1是false, 則根據conjunctive的語義,整個表達式是false, 計算引擎可以直接跳轉,不需要進一步計算取余的conditions。

AnalyticDB PostgreSQL版優化器可通過Filter動態調整算法,調整表達式分支前后順序的方式,把結果最可能是false的分支提前,從而充分利用計算引擎filter短路技術,簡化conjunctive boolean表達式的計算代價。

HTAP優化器自適應

AnalyticDB PostgreSQL版引入HTAP優化器自適應選擇算法,動態判斷OLAP/OLTP不同場景性能最佳的優化器,用戶無需關心優化器的選擇問題。