本文档基于TPC-H测试PolarDB MySQL版8.0.1和8.0.2版本集群版的OLAP负载性能,您可以按照本文介绍自行测试对比,快速了解数据库系统的性能。
并行查询简介
PolarDB MySQL版8.0版本集群版推出并行查询(Parallel Query)框架。当您的查询数据量到达一定阈值,就会自动启动并行查询框架,从而使查询耗时指数级下降。具体请参见概述。
PolarDB MySQL版8.0.1版本中,并行查询在存储层将数据分片到不同的线程上,多个线程并行计算,将结果流水线汇聚到总线程,最后由总线程做简单归并将结果返回给用户,提高查询效率。
PolarDB MySQL版8.0.2版本中,并行查询将线性加速能力提升了一个等级,引入了多阶段并行计算能力。基于代价优化为更为灵活的并行执行计划,改进了8.0.1版本并行查询可能存在的Leader单点瓶颈和Worker负载不均衡的问题。具体来说,在存储层仍然将数据分片到不同的线程上,多个线程并行计算,并可能分发到下一个阶段的并行Worker组中,最终并行计算结果汇总到Leader并返回给用户,大幅提升了并行执行能力。
并行查询利用多核CPU的并行处理能力,以8核32 GB独享规格的集群为例,并行查询示意图如下所示。

下文将介绍8.0.1和8.0.2版本并行查询参数取值分别设置为如下表所示时,PolarDB集群负载并行查询测试方法与执行结果。关于如何配置参数,具体操作步骤请参见设置集群参数和节点参数。
- 8.0.1 - 参数 - 默认值 - 优化后的值 - loose_parallel_degree_policy - REPLICA_AUTO - TYPICAL - loose_max_parallel_degree - 0 - 16 
- 8.0.2 - 参数 - 默认值 - 优化后的值 - loose_parallel_degree_policy - REPLICA_AUTO - TYPICAL - loose_parallel_query_switch - '' - 'force_run_using_planning_dop=on' - loose_optimizer_switch - '' - 'hash_join_cost_based=off' - loose_max_parallel_degree - 0 - 16 
当loose_parallel_degree_policy参数被设定为TYPICAL时,PolarDB在选择查询并行度时将不会考虑数据库的当前负载情况(例如CPU使用率等),而是会尽可能地与loose_max_parallel_degree参数所设定的并行度保持一致。
执行结果
- 8.0.1版本的测试结果如下所示: - 查询 - 默认值耗时(秒) - 优化后的值耗时(秒) - Q1 - 2495.05 - 86.63 - Q2 - 13.18 - 1.46 - Q3 - 345.56 - 28.67 - Q4 - 63.78 - 6.26 - Q5 - 251.48 - 258.55 - Q6 - 241.7 - 16.4 - Q7 - 174.91 - 171.85 - Q8 - 560.82 - 572.63 - Q9 - 450.68 - 42.17 - Q10 - 895.75 - 270.29 - Q11 - 30.03 - 11.6 - Q12 - 266.14 - 17.65 - Q13 - 780.74 - 127.1 - Q14 - 72.04 - 7.57 - Q15 - 261.77 - 56.55 - Q16 - 40.69 - 24.29 - Q17 - 57.75 - 13.04 - Q18 - 257.66 - 136.79 - Q19 - 19.17 - 1.52 - Q20 - 143.97 - 49.72 - Q21 - 293.99 - 37.79 - Q22 - 18.81 - 2.15  
- 8.0.2版本的测试结果如下所示: - 查询 - 默认值耗时(秒) - 优化后的值耗时(秒) - Q1 - 573.34 - 89.65 - Q2 - 3.62 - 0.66 - Q3 - 96.89 - 28.52 - Q4 - 18.66 - 6.41 - Q5 - 150.93 - 28.93 - Q6 - 68.13 - 17.13 - Q7 - 114.56 - 17.39 - Q8 - 333.36 - 54.32 - Q9 - 136.26 - 42.15 - Q10 - 325.19 - 128.55 - Q11 - 11.49 - 4.53 - Q12 - 121.68 - 17.54 - Q13 - 281.1 - 126.2 - Q14 - 23.34 - 7.59 - Q15 - 77.22 - 33.02 - Q16 - 12.15 - 8.96 - Q17 - 4.51 - 1.13 - Q18 - 325.05 - 133.07 - Q19 - 5.37 - 1.5 - Q20 - 70.31 - 90.75 - Q21 - 171.81 - 29.87 - Q22 - 6.05 - 2.16 