【重做日志的作用】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 持续学习,不断总结,共同进步,活到老学到老
  • 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
  • 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
  • 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

1.举例说明重做日志的作用

  • DB_TRX_ID:记录创建这条记录/最后一次修改该记录的事务 ID
  • DB_ROW_ID: 隐含的自增 ID
  • DB_ROLL_PTR: 指向这条记录的上一个版本

image-20230601101044868

2.undo log 和 redo log?

事务隔离性由锁来实现。原子性、一致性、持久性由数据库的 redo log 和 undo log 来完成。

redo log 称为重做日志来保证事务的原子性和持久性。

undo log 用来保证事务的一致性。

undo 不是 redo 的逆过程。redo log 和 undo log 的作用都可以视为是一种恢复操作,redo 恢复提交事务修改页操作,而 undo 回滚行记录到某个特定版本。因此两者记录的不同,redo 通常是物理日志,记录的是页的物理修改操作。undo 逻辑日志,根据每行记录进行记录

在 MySQL 中,重做日志(Redo Log)是用于保证事务的持久性(Durability)的一种机制。它由两部分组成:重做日志缓冲(Redo Log Buffer)和重做日志文件(Redo Log File)。

重做日志缓冲是一个内存区域,用于暂存事务执行过程中对数据的修改操作。当事务提交时,重做日志缓冲中的内容会被刷写到重做日志文件中。

重做日志文件是一个磁盘文件,用于记录所有的事务修改操作。当数据库发生宕机等异常情况时,重做日志文件可以用来恢复数据。重做日志文件的大小是固定的。重做日志的作用是保证事务的持久性和可恢复性。

redo log 存放在重做日志文件中,与 redo log 不同,undo 存放在数据库内部的一个特殊段(segment)中,这个段称为 undo 段(undo segment)。undo 段位于共享表空间内。可以通过 py_innodb_page_info.py 工具来查看当前共享表空间中 undo 的数量。

最后也是最为重要的一点是,undo log 会产生 redo log,也就是 undo log 的产生会伴随着 redo log 的产生,这是因为 undo log 也需要持久性的保护。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值