MySQL并行查询优化

应用场景:MySQL查询场景中,MySQL单SQL查询只能调度单线程,多核CPU无法使用,单查询性能查询差,难于满足查询场景的性能要求。

技术原理:并行读取,并行数据处理加速查询场景性能。

性能指标查询性能提升大于1倍(性能提升与并行度有关)。

TPCH(100GB)

鲲鹏5250原生(s)

鲲鹏5250并行优化(8并行)(s)

Query 1

1433.936

241.53425

Query 3

34.578

84.17875

Query 4

423.378

23.0905

Query 5

60.976

180.92275

Query 6

405.554

77.13725

Query 7

168.744

170.77975

Query 8

468.347

17.47975

Query 9

462.33

108.01425

Query 10

125.827

80.97225

Query 12

263.934

83.17075

Query 14

385.567

96.70275

Query 19

20.121

5.78025

Query 21

853.048

406.74575

Total(13条)

5106.34

1576.509

表1 已实现并行查询的SQL算子

算子类型

算子名称

filter条件

=、>、 < 、>= 、<= 、like、between…and、in

Aggregate

count、Sum、avg、min、max

Join连接

Left join 、right join、join

排序分组

having、Group by、Order by、limit

子查询

优化器可优化为simple查询的子查询

如何使用:

  1. patch补丁基于开源MySQL 8.0.20、MySQL 8.0.25编译安装部署。
  2. 合入该patch后编译安装部署。
  3. 开启并行参数或SQL使用hint。

限制条件:

以下查询语句不支持并行执行。更多使用约束信息请参见《MySQL 并行查询优化 特性指南》。