假如你有一张表T,表里只有一个id字段,在执行下面这个查询语句,简述一下这条语句在MySQL内部的执行过程。
其中表T结构为:
mysql> CREATE TABLE T(id int primary key, c int);
如果要将id=2这一行的值加上1,SQL语句如下:
mysql> UPDATE T SET c=c+1 WHERE id=2;
前面已经介绍过,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等模块,最后到达存储引擎,类似更新语句也会同样走一遍。
但是与查询流程不一样的是,更新流程会涉及到两个重要的日志模块:redo log
(重做日志)和binlog
(归档日志)。