PolarDB分布式版是一款支持HTAP(Hybrid Transaction/Analytical Processing)的数据库,在支持高并发、事务性请求的同时,也对分析型的复杂查询提供了良好的支持。
说明 分析型查询指的是涉及数据量较大、计算比较复杂的查询,例如对一定时间区间内的数据进行聚合,相比于业务中常见的简单查询,这类查询往往要执行数秒甚至数分钟,需要消耗较多的计算资源。
为了提高复杂分析型查询的速度,PolarDB分布式版将计算任务切分并调度到多个计算节点上,从而利用多个节点的计算能力,加速查询的执行。这种方式也称为MPP并行计算(Massively Parallel Processing,简称MPP)。目前只有PolarDB分布式版只读实例默认开启了MPP并行计算能力。
查询优化器
PolarDB分布式版的优化器面向HTAP负载设计,对复杂查询有着良好的支持。TP(Transaction Processing)类事务型查询包含的表数量通常有限(例如3个以内),并且Join条件往往被索引覆盖,且查询涉及的数据量较小。而对于不符合上述特征的复杂查询,对优化器提出了更高的要求。
PolarDB分布式版采用了基于代价的优化器技术,能够根据实际数据量、数据分布情况等,搜索到较优的执行计划,例如,对Join顺序进行调整、选择合适的Join或聚合算法,对关联子查询去关联化等。执行计划的好坏很大程度上决定了查询效率,查询优化对于AP(Analytical Processing)类分析型查询至关重要。
读写分离
当在线业务流量比较多时,对PolarDB分布式版主实例压力比较大。此种场景下,PolarDB分布式版建议您购买只读实例,按照预先设置好的比例将一部分TP类读查询通过主实例CN转发给只读DN,这个过程称为读写分离。通过读写分离对读流量进行分流,可以减轻主实例存储层DN的读压力。PolarDB分布式版是一款支持HTAP(Hybrid Transaction/Analytical Processing)的数据库,在支持高并发、事务性请求的同时,也对分析型的复杂查询提供了良好的支持。
- 强一致性读:路由到只读实例的请求,保证一定能够查询到读请求执行前在主实例上已完成更新的数据,提供外部强一致性;
- 弱一致性读:路由到只读实例的请求,读请求仅访问只读实例上当前的最新数据,会因为主从异步复制的架构产生数据读取延迟。




