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不同场景性能最佳的优化器,用户无需关心优化器的选择问题。