SQL更新语句的执行过程
1、第一步开启一个事务
2、接下来update SQL放往MySQL服务器层,然后经过SQL解析、词法分析和语法分析、查询优化等步骤,最终生成一个物理执行计划
3、MySQL执行器调用InnoDB引擎接口进行后面修改操作
4、在修改数据前需要先把数据查出来
5、把需要修改的数据行查出来之后,需要进行校验锁和加锁的流程(MySQL服务器层的元数据锁、引擎层的表级意向锁和行级排他锁)
6、成功加锁后就可以对数据行进行修改操作,这个过程需要再InnoDB存储引擎中写入数据页、undo log 、redo log,在MySQL服务器层写入Binlog.
7、修改和生成日志完成后,就可以开始提交,这个时候需要进行redo log和binlog落盘,MySQL通过内部的XA事务来协调保证两种日志的一致性。
8、返回客户端提交成功
坚冰还盖着北海的时候,我看到了怒放的梅花。