面试官问我undo log如何实现Mysql原子性

源码固然重要,但是每个问题背后都有一个基本的逻辑思路

  undo log即回滚日志,update操作时undo log记录了某行记录变更之前的样子,行记录通过回滚指针(DATA_ROLL_ID)关联到undo log变更前的记录,这条记录依然可以DATA_ROLL_ID找到之前的还原点(undo log中的记录)。insert和delete记录了反向的delete和insert操作。从我的描述来看undo log记录的是逻辑上如何还原。

  这次一次Mysql事务只要记录下undo log,这样在我们应用程序中调用connection.rollBack()时就会按undo log中逻辑进行回滚,这样就保证了一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行成功。那你们会疑问如果这时Mysql那台服务器突然断电,会不会再重启时出现异常,不会,因为undo log也通过redo log来保证持久性。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值