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