MySQL基础回顾-01(一条SQL查询语句是如何执行的?)

一条SQL查询语句是如何执行的?

SQL的执行过程:

    一条SQL 在整体的执行过程中,通过连接器与数据库建立连接,通过查询缓存,查看内存是否含有查询结果的Key-Value的键值对,如果有直接返回给客户端,如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL 需要知道你要做什么,因此需要对 SQL 语句做解析。分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的一条 SQL 语句,MySQL 需要识别出里面的字符串分别是什么,代表什么。做完了这些识别以后,就要做“语法分析”。根据词法分析的结果,语法分析器会根据语法规则,判断你输入的这个 SQL 语句是否满足 MySQL 语法。经过了分析器,MySQL 就知道你要做什么了。在开始执行之前,还要先经过优化器的处理。优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。优化器阶段完成后,这个语句的执行方案就确定下来了。MySQL 通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。

总结:

  1.建立连接 --连接器 

  2.查询缓存 (MySQL 8.0 废弃)

  3.SQL解析 --分析器

  4.SQL应该如何做--优化器

  5.SQL开始执行--执行器
  

执行流程图
MySQL基础回顾-01(一条SQL查询语句是如何执行的?)