前面提到一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?
之前你可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒的状态,这是怎样做到的呢?
我们是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c:
mysql> create table test(id int primary key, c int);
如果要将id=2这一行的值加1,SQL就会这么写:
mysql> update test set c = c + 1 where id = 2;
首先,查询语句的那一套流程,更新语句也是同样会走一遍。