一条SQL查询语句是如何执行的?(13)

日志系统:一条SQL更新语句是如何执行的?

面我们系统了解了一个查询语句的执行流程 , 并介绍了执行过程中涉及的处理模块 。 相信你还记得 , 一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块 , 最后到达存储引擎 。

那么 , 一条更新语句的执行流程又是怎样的呢?

之前你可能经常听 DBA 同事说 , MySQL 可以恢复到半个月内任意一秒的状态 , 惊叹的同时 , 你是不是心中也会不免会好奇 , 这是怎样做到的呢?

我们还是从一个表的一条更新语句说起 , 下面是这个表的创建语句 , 这个表有一个主键 ID 和一个整型字段 c:

mysql> create table T(ID int primary key c int);

如果要将 ID=2 这一行的值加 1 , SQL 语句就会这么写:

mysql> update T set c=c+1 where ID=2;

推荐阅读