Skip to content

Latest commit

 

History

History
19 lines (10 loc) · 771 Bytes

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

File metadata and controls

19 lines (10 loc) · 771 Bytes

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

SQL内部执行过程

假如你有一张表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(归档日志)。

MySQL架构概览