应用场景
通过MySQL并行查询优化方案,实现了并行读取数据,使用多核多线程执行该SQL语句的功能,加速了查询语句的执行速度。MySQL并行查询优化主要用于数据分析、BI报表及决策支持等业务场景。目前支持单表的4种扫描的查询并行:
- JT_ALL
- JT_INDEX_SCAN
- JT_REF
- JT_RANGE
在满足单表条件基础上,支持简单多表并行的并行查询,不支持子查询,支持部分semi join查询。方案以白名单的方式支持。具体如下:
- 单表白名单:
Select {列名| Aggregate } from table where {=|>| < |>= |<= |like |between…and| in} group by {列名} having {列名}order by {列名| Aggregate } limit x
Aggregate代表:sum min max avg count
- 多表白名单:
Select {列名| Aggregate } from table1 table2 … where {=|>| < |>= |<= |like |between…and| in} group by {列名} having {列名}order by {列名} limit x
如果查询是系统表、临时表、非innodb表、存储过程、串行化隔离级别,并行功能也不生效。
- semi join查询:
部分semi join可以经过MySQL的优化器后,会变为普通的简单查询。如果执行计划最里层的表是一张外表,那么这类的SQL也可以支持并行查询。
- 聚合的四则运算:
安全加固声明
MySQL并行查询优化支持MySQL 8.0.20版本和MySQL 8.0.25版本,建议关注MySQL官网相应版本的CVE漏洞,按照要求及时进行漏洞修复。
父主题: 介绍