展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

SQL执行流程

  • 执行流程

  • 查询流程

1、查询缓存:Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端;如果没有,
就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在 MySQL8.0 之后就抛弃了这个功能

2、解析器:在解析器中对 SQL 语句进行语法分析、语义分析

2.1、如果SQL语句正确,则会生成一个这样的语法树

3、优化器:在优化器中会确定 SQL 语句的执行路径,比如是根据 全表检索 ,还是根据 索引检索 等
3.1、在查询优化器中,可以分为 逻辑查询 优化阶段和 物理查询 优化阶段
4、执行器:截止到现在,还没有真正去读写真实的表,仅仅只是产出了一个执行计划。于是就进入了 执行器阶段
4.1、在执行之前需要判断该用户是否 具备权限 。如果没有,就会返回权限错误。如果具备权限,
就执行 SQL查询并返回结果。在 MySQL8.0 以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存

posted @ 2022-06-08 09:50  DogLeftover  阅读(54)  评论(0编辑  收藏  举报