事务管理
MySQL 中的事务管理概述了数据插入、更新、删除等流程中的引擎相关操作,首先以某个 update 语句 update person set age = 30 where id = 1; 的执行流程为例:
    分配事务 ID ,开启事务,获取锁,没有获取到锁则等待。
    执行器先通过存储引擎找到 id = 1 的数据页,如果缓冲池有则直接取出,没有则去主键索引上取出对应的数据页放入缓冲池。
    在数据页内找到 id = 1 这行记录,取出,将 age 改为 30 然后写入内存。
    生成 redolog Undo Log 到内存,redolog 状态为 prepare。
    将 redolog Undo Log 写入文件并调用 fsync。
    server 层生成 binlog 并写入文件调用 fsync。
    事务提交,将 redolog 的状态改为 commited 释放锁。
Last modified 2yr ago
Copy link