简单了解MySQL的执行流程到底是怎么样的

用图文简单记录执行SQL的时候流程,便于自己理解。

image

连接器

第⼀步,你会先连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。

查询缓存

  • 连接建立完成后,你就可以执行select语句了。执行逻辑就会来到第⼆步:查询缓存。
  • 建议不要用查询缓存,查询缓存的失效非常频繁,只要有对⼀个表的更新,这个表上所有的查询缓存都会被清空。

分析器

  • 如果没有命中查询缓存,就要开始真正执行语句了。
  • 分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的⼀条SQL语句,MySQL需要识别出里面的字符串分别是什么,代表什么。

优化器

  • 经过了分析器,MySQL就知道你要做什么了。在开始执行之前,还要先经过优化器的处理

  • 优化器是在表里面有多个索引的时候,决定使用哪个索引

  • 或者在⼀个语句有多表关联(join)的时候,决定各个表的连接顺序。比如你执行下面这样的语句,这个语句是执行两个表的join:

    mysql> select * from t1 join t2 using(ID) where t1.c=10 and t2.d=20;
    
  • 这两种执行方法的逻辑结果是⼀样的,但是执行的效率会有不同,而优化器的作用就是决定选择使用哪⼀个方案。

执行器

MySQL通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句

你可能感兴趣的:(简单了解MySQL的执行流程到底是怎么样的)