一条SQL更新语句是如何执行的?
3 分钟阅读
•
314 字
+
387 词
参考答案:
- 连接器 :连接器负责跟客户端 建立连接、获取权限、维持和管理连接 。
-
分析器
:你输入的是由多个字符串和空格组成的一条
SQL语句,此时需要进行 词法分析和语法分析 。MySQL需要识别出里面的字符串分别是什么,代表什么。 -
优化器
:优化器是在表里面有多个索引的时候,
决定使用哪个索引
; 或者在一个语句有多表关联(
join)的时候,决定 各个表的连接顺序 。 -
执行器
:
MySQL通过分析器知道了你要做什么 , 通过优化器知道了该怎么做 ,于是就进入了执行阶段与存储引擎开始交互,开始执行语句。 - 判断数据页 是否在buffer pool 中,如果不在就从磁盘读入buffer pool。然后对数据页进行修改, 标记为脏页 ,将这条更新记录到redo log中,此时redo log在prepare状态。 redolog是记录了页的修改,是物理日志
- 执行器再生成这个操作的bin log,并把bin log写入磁盘中
- 提交事务后,才会将redo log改为commit状态。更新完成。