一条SQL更新语句是如何执行的?

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