【TiDB 4.0 PCTA 学习笔记】-2.5.5 SQL Tuning Guide(TiDB 的 SQL 性能优化指南)@2班+邱育珍

课程名称:2.5.5 SQL Tuning Guide(TiDB 的 SQL 性能优化指南)

学习时长:50min

课程收获:

通过 Explain 语句理解 TiDB 的执行计划,TiDB 在优化器和执行器的大致架构,会影响执行性能的一些变量以及使用场景,非侵入性的控制 SQL 的执行计划。

课程内容:

1.理解 TiDB 的执行计划




TiDB 优化器会根据当前数据表的最新的统计信息来选择最优的执行计划,执行计划由一系列的算子构成。
TiDB 中可以使用EXPLAIN 命令来查看执行计划,EXPLAIN 语句的返回结果提供了TiDB 执行SQL 查询的详细信息:
• EXPLAIN 可以和SELECT,DELETE 等语句一起使用;
• 执行EXPLAIN,TiDB 会返回被EXPLAIN 的SQL 语句经过优化器后的最终物理执行计划。也就是说,EXPLAIN展示了TiDB 执行该SQL 语句的完整信息,比如以什么样的顺序,什么方式JOIN 两个表,表达式树长什么样等等。
• 关于EXPLAIN 每列的简述,可以参见EXPLAIN 输出格式。
通过观察EXPLAIN 的结果,你可以知道如何给数据表添加索引使得执行计划使用索引从而加速SQL 语句的执行速度;你也可以使用EXPLAIN 来检查优化器是否选择了最优的顺序来JOIN 数据表。

2.TiDB SQL优化流程

如果执行计划选错了索引:
1)analyze the table
2) 如果选择错了引擎:tidb_opt_seek_fact;如果不是:use index hint or just SPM

image


image
Hash join


Index join
image

Merge join
image

image
Hash 聚合


流式聚合
image
Index Lookup Reader 回表读
image

3.控制执行计划:
image
1)use hint




2)SQL plant managemnet

学习过程中参考的其他资料