MySQL 之 -- 一条更新的 SQL 如何执行,一条更新的 SQL 语句如何执行执行流程一条 SQL 的执行流程如图所示:(图片来源于网络) 如图所示:MySQL 数据库主要分为两个层级:服务层和存储引擎层服务层:server 层包括连接器、查询缓存、分析器、优化器、执行器,包括大多数 MySQL 中的核心功能所有跨存储引擎的功能也在这一层实现,包括存储过程、触发器、视图等。
一条 SQL 的执行流程如图所示:(图片来源于网络)
如图所示:
MySQL 数据库主要分为两个层级:服务层和存储引擎层
日志记录用到 WAL 技术,全称为 Write-Ahead-logging
关键点为:先写日志,再写磁盘
更新流程如图所示:红色为在执行器中执行,蓝色在 InnoDB 内部执行
update 语句执行时的内部流程。
其中 prepare 和 commit 两个阶段就是 两步提交
若在 prepare 后写入 binlog 阶段出问题,现在这条数据是 prepare 状态,然后我们恢复数据库的时候这条数据的更新操作就会回滚,不产生变更,若在 commit 出了问题,也会进行回滚,这样可以保证数据的一致性。