InnoDB 修改一条数据的过程
2023-02-04 22:05:57 5 举报
InnoDB 修改一条数据的过程
作者其他创作
大纲/内容
第一步:把数据从磁盘读取到内存中
Name
老王
第六步:事务提交写 redo log (commit 状态)
1001
操作过程:开启一个事务A: 对user_info表执行 update user_info set name =“老王”where id=1001 会进行如下流程操作1、首先获得一个事务编号 1012、把user_info表修改前的数据拷贝到undo log3、修改user_info表 id=1的数据4、把修改后的数据事务版本号改成 当前事务版本号,并把DB_ROLL_PTR 地址指向undo log数据地址。
redo log
ID
redo、undo、binlog的生成流程与崩溃恢复当我们执行update user_info set name =“老王”where id=1001 的时候大致流程如下:1、从磁盘读取到id=1的记录,放到内存。2、记录undo log 日志。3、记录redo log (预提交状态)4、修改内存中的记录。5、记录binlog6、提交事务,写入redo log (commit状态)
老郑
第三步:写 redo log (prepare 状态)
表记录(内存中)
undo log
第四步:更新内存中的表的记录值
磁盘数据变更日志(prepare 状态)
原始数据:
update user_infoset name = ‘老王’where id = 1001
第二步:把原始数据记录到 undo log
磁盘数据变更日志(commit 状态)
binlog
第五步:写 bin log
0 条评论
回复 删除
下一页