MySQL更新语句执行流程

转自 02 | 日志系统:一条SQL更新语句是如何执行的? - MySQL实战45讲

问大家一个问题。 UPDATE t set c = 2 where id = 1 ; 这个更新语句是怎么执行的。

假设表结构是

CREATE TABLE `t` (
  `id` int(11) NOT NULL,
  `c` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

(7) 更新一条语句的流程

  1. 连接器 连接数据库。
  2. 清空对应表缓存
  3. 分析器 词法解析 语法解析
  4. 优化器
  5. 执行器
  6. 更新 redo log(重做日志)和 binlog(归档日志)。

参考资料

[1] 02 | 日志系统:一条SQL更新语句是如何执行的? - MySQL实战45讲