💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 持续学习,不断总结,共同进步,活到老学到老
- 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
- 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
- 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
1.举例说明重做日志的作用
- DB_TRX_ID:记录创建这条记录/最后一次修改该记录的事务 ID
- DB_ROW_ID: 隐含的自增 ID
- DB_ROLL_PTR: 指向这条记录的上一个版本
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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙