多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## redo日志是个啥 REDO LOG 称为**重做日志**,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的**持久性** ### 为什么需要 redo 日志? 已经提交了的事务对数据库中数据所做的修改永久生效,即使后来系 统崩溃,在重启后也能把这种修改恢复出来。没有必要在每次事务提交时就把该事务在内 存中修改过的全部页面刷新到磁盘,只需要把 修改 了哪些东西 记录一下 就好。 ![](https://img.kancloud.cn/a1/f8/a1f870c2be0a1d620f92b901a07ef2f2_1523x715.png) ### REDO日志的好处 * `redo`日志占用的空间非常小 存储表空间ID、页号、偏移量以及需要更新的值所需的存储空间是很小的,关于`redo`日志的格式我们稍后会详细唠叨,现在只要知道一条`redo`日志占用的空间不是很大就好了。 * `redo`日志是顺序写入磁盘的 在执行事务的过程中,每执行一条语句,就可能产生若干条`redo`日志,这些日志是按照产生的顺序写入磁盘的,也就是使用顺序IO。 ## redo日志格式 绝大部分类型的`redo`日志都有下边这种通用的结构: ![](https://img.kancloud.cn/a9/d0/a9d002c5b9fa3fd5bf9a23e0d9ffee84_982x253.png) 各个部分的详细释义如下: * `type`:该条`redo`日志的类型。 * `space ID`:表空间ID。 * `page number`:页号。 * `data`:该条`redo`日志的具体内容。