今天朋友问了我一个问题:MySQL的redolog和binlog的区别!!!
在这里记录一下
首先,binlog会记录所有与MySQL数据库有关的日志记录,包括InnoDB、MyISAM、Heap等其他存储引擎的日志。
而InnoDB存储引擎的重做日志只记录有关该引擎本身的事务日志。
其次,记录的内容不同。无论用户将binlog文件记录的格式设为STATEMENT还是ROW,又或是MIXED,其记录的都是
关于一个事务的具体操作内容,即该日志是逻辑日志。而InnoDB存储引擎的重做日志是关于每个页(Page)的更改的物理情况。
此外,写入的时间也不同。binlog文件仅在事务提交后进行写入,即只写磁盘一次,不论这时该事务多大。而在事务进行的过程中,
却不断有重做日志条目(redo entry)被写入到重做日志文件中。
由此可见,redo log仅仅是innodb存储引擎的一个功能,而binlog才是对应oracle的redo log
区别:
二进制日志会记录所有与mysql有关的日志记录,包括innodb,myisam,heap等其他存储引擎日志.而innodb存储引擎的重做日志只记录有关其自身的事务日志.
记录的内容不同:二进制日志记录的都是一个关于一个事务的具体操作内容.而innodb存储引擎的重做日志文件记录的关于每个页的更改物理情况
写入时间也不同:二进制日志文件是在事务提交时进行记录的,而在事务进行的过程中,不断有重做日志条目被写入重做日志文件
阅读(2766) | 评论(3) | 转发(0) |