Undo log与 MVCC机制

本文详细介绍了MySQL中的Undo日志,特别是INSERT语句的undo log,以及MVCC(多版本并发控制)机制。通过ReadView机制,解释了在不同隔离级别下(如Read Uncommitted, Read Committed, Repeatable Read)如何处理事务并发读写,确保数据一致性。此外,还讨论了事务并发写、独占锁与共享锁以及表锁和行锁的关系。" 89766233,7597636,交叉熵代价函数的优势解析,"['深度学习', '损失函数', '优化', '模型训练']
摘要由CSDN通过智能技术生成

Undo日志

INSERT语句的undo log日志

对应的类型是TRX_UNDO_INSERT_REC

  • 这条日志的开始位置
  • 主键的各列长度和值
  • 表id
  • undo log日志编号
  • undo log日志类型
  • 这条日志的结束位置

在这里插入图片描述

假设现在需要回滚一条insert语句,只需要把undo log拿出来,就知道在哪个表里插入的数据,主键是什么,直接定位到哪个表和主键对应的缓存页,从里面删除掉之前insert语句插入进去的数据就可以了。

MySQL运行时多个事务同时执行

read uncommitted,读未提交,不允许脏写(第一类丢失更新)发生,因为它不允许两个事务在没提交的情况下去更新同一行的数据的值。

RC,RR,serialize

MySQL是如何支持四种隔离级别

MySQL依托于MVCC机制,就能让RR级别避免不可重复读和幻读的问题。

MySQL的MVCC机制,多版本并发控制机制

每条数据都有两个隐藏的字段,一个是trx_id,一个是roll_pointer,trx_id就是最近一次更新这条数据的事务id,roll_pointer就是指向更新了这个事务之前生成的undo log。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值