简单了解MySQL的执行流程到底是怎么样的
2020-04-13 本文已影响0人
时间煮菜
image用图文简单记录执行SQL的时候流程,便于自己理解。
连接器
第⼀步,你会先连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。
查询缓存
- 连接建立完成后,你就可以执行select语句了。执行逻辑就会来到第⼆步:查询缓存。
- 建议不要用查询缓存,查询缓存的失效非常频繁,只要有对⼀个表的更新,这个表上所有的查询缓存都会被清空。
分析器
- 如果没有命中查询缓存,就要开始真正执行语句了。
- 分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的⼀条SQL语句,MySQL需要识别出里面的字符串分别是什么,代表什么。
优化器
-
经过了分析器,MySQL就知道你要做什么了。在开始执行之前,还要先经过优化器的处理
-
优化器是在表里面有多个索引的时候,决定使用哪个索引;
-
或者在⼀个语句有多表关联(join)的时候,决定各个表的连接顺序。比如你执行下面这样的语句,这个语句是执行两个表的join:
mysql> select * from t1 join t2 using(ID) where t1.c=10 and t2.d=20;
-
这两种执行方法的逻辑结果是⼀样的,但是执行的效率会有不同,而优化器的作用就是决定选择使用哪⼀个方案。
执行器
MySQL通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。