redo日志
redo日志 作用 innoDB存储引擎中,需要在服务器故障重启后,能够准确的恢复所有已提交的数据,保证数据持久性;如某个事务在内存Buffer Pool中已被提交(脏页),但服务器突然故障,数据就丢失了; 为了解决这个问题,可以采用修改页面刷新到磁盘,但因为可能只修改了一条记录,没必要实时刷新浪费时间,而且修改的记录并不一定是连续的,随机IO刷新较慢。 可以将已提交事务修改的记录记录下来,即某个表空间中某页的某个偏移量的值更新为多少,这个记录的文件就称为redo log。相比刷新内存中的页面到磁盘,redo log刷新到磁盘的内容小了很多,而且是一个顺序写入磁盘的过程。 redo日志不止记录索引插入/更新记录等操作,还有执行这个操作影响到的其他动作,如页分裂新增目录项记录,修改页信息等对数据页做的任何修改等等。 和binlog区别:binlog记录的是页已经正式落盘的操作且是包含所有存储引擎,redo日志记录InnoDB引擎下仍然在buffer pool中的操作,用于系统奔溃时恢复脏页。 日志 日志格式 type:类型 MLOG_1BYTE:1 :表示在页面的某个偏移量处写入1个字节的 redo 日志类型。 MLOG_2BYTE:2 MLOG_4BYTE:4 MLOG_8BYTE:8 MLOG_WRITE_STRING:30 MLOG_REC_INSERT:9