MySQL中一条SQL的执行过程是怎样的?


一、SQL的执行过程

执行SQL语句:

select * from student A where age = 18 and name = 'Gary';

步骤如下:

  1. 通过客户端/服务器通信协议与MySQL建立连接,并查询是否有权限
  2. MySQL 8.0之前检查是否开启缓存,开启了Query Cache且命中完全相同的SQL语句,则直接返回查询结果给客户端
  3. 解析器进行语法解析,并生成解析树,如查询是select、表名student、条件是age='18' and name = 'Gary'。同时预处理器会根据MySQL规则进一步检查解析树是否合法,如检查要查询的数据或数据列是否存在等
  4. *查询优化器生成执行计划,根据索引查看是否可以优化
  5. 查询执行引擎执行SQL语句,根据MySQL的存储引擎类型,得到查询结果。若开启了Query Cache,则缓存,否则直接返回

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录