在AP复杂场景下,基于代价选择最优计划十分重要。

AnalyticDB MySQL版基于代价的优化器具有以下特点:

高效的搜索框架
CBO采用Cascades搜索框架,相对于SystemR方案,扩展性更强,支持多种维度寻求最优解。针对超多表的JOIN,采用Adaptive Join Reorder机制,可以有效在搜索时间和优化效果之间达到平衡。
面向分布式
设计实现了一套完整的Property Enforcement框架,用于描述在分布式场景下,分布式计划对数据分布的要求。同时我们把Property Enforcement的过程和搜索框架无缝的结合在一起,实现了面向分布式MPP数据库的CBO。
多样化代价估算体系
基于事前、事中、事后三个阶段来提升代价估算的可靠性:事前会自动化的基于统计信息收集任务,给优化器提供必要的决策依据;事中会基于Adaptive Query Optimization思路,基于运行时的反馈进行动态调整;事后会基于历史查询的反馈,对代价估算进行优化。
自动化统计信息收集
统计信息分为两类:基础统计信息,做到自动化收集;高级统计信息,类似ColumnGroup等,支持手动收集。