MySQL --- 读书笔记 --- SQL执行流程
MySQL中的SQL执行流程
查询流程
- 查询缓存:Server如果在查询缓存中发现了这条SQL语句,就会直接将结果返回给客户端;如果没有,就会进入解析器阶段。但是在MySQL8.0中该功能被删除
- 解析器解析,对SQL语句进行解析
- 先做词法分析,识别SQL语句中的各个词是什么,代表什么
- 接着做语法分析,根据词法分析的结果,根据语法规则,判断输入的SQL语句是否正确,如果正确,那将会生成一个语法树
- 知道SQL语句的行为之后,进入优化器,优化器会确定SQL语句的最终执行路径,比如说是根据索引检索,还是全表检索;一条查询会有很多执行方式,结果是相同的,那么优化器的作用就是找到最好的执行计划
- 查询优化又分为
逻辑查询优化
和物理查询优化
- 逻辑查询优化其实就是通过改变SQL语句的内容,等价变换之后,提高查询效率
- 物理查询优化指的是索引,优化每一步实际查询计算物理路径的代价
- 查询优化又分为
- 执行器是最终执行的存储引擎的上层接口