一、功能介绍
·LIMIT/OFFSET 下推到二级索引时,该功能将避免“回表”操作,有效降低扫描代价。
·SUM 操作下推到 InnoDB 时,在 InnoDB 层进行计算返回“最终”结果,节省 Server 层和 InnoDB 引擎层多次迭代“每行”记录的代价。
二、支持版本
内核版本 TDSQL-C MySQL 版 5.7 2.0.23/2.1.9 及以上。
三、适用场景
·该功能主要针对单表查询下存在 LIMIT/OFFSET 或 SUM 的场景,如 “Select *from tbl Limit 10”、“Select* from tbl Limit 10,2”、“Select sum(c1) from tbl” 等语句。
·无法优化的场景:
·查询语句存在 distinct、group by、having。
·存在嵌套子查询。
·使用了 FULLTEXT 索引。
·存在 order by 并且优化器不能利用 index 实现 order by。
·使用多范围的 MRR。
·存在 SQL_CALC_FOUND_ROWS。
四、参数说明
执行 SQL 过程中,根据相应功能控制参数的开关情况,查询优化器自动改写查询计划来完成计算下推的优化。
参数如下:
| 参数名 | 动态 | 类型 | 默认 | 参数值范围 | 说明 |
| cdb_enable_offset_pushdown | Yes | bool | ON | {ON,OFF} | 控制 LIMIT/OFFSET 下推,默认开启 |
| cdb_enable_sumagg_pushdown | Yes | bool | OFF | {ON,OFF} | 控制 SUM 下推,默认关闭 |
注意:说明:
注意:用户目前无法直接修改以上参数的参数值,如需修改可 提交工单 进行修改。