一条 update 会经历哪些过程

update

首先是连上连接器,负责跟客户端建立连接、获取权限、维持和管理连接。

分析器会先做词法分析。需要确定SQL语句中的字符串分表是什么,代表什么。

再做语法分析,判断输入的SQL是否满足MySQL语法。

再经过优化器,决定是否走索引,走哪个索引,或者决定关联表的顺序。

执行器负责具体的执行。

进入到存储引擎层。

首先查看数据页是否在缓存中,如果在,就读取数据,如果不在,就从磁盘中读取。

判断要操作的记录是否存在锁,如果存在,就等待。

如果不存在,就对要修改的记录行加锁。

再写Undo Log。

记录Redo Log,进入预提交状态。

修改内存中的记录。

记录Binlog。

提交事务,写入Redo Log。

最终Commit