redo log 和bin log的区别?bin log的作用
在MySQL数据库中还有一种二进制日志 (binlog) , 其用来进行POINT-IN-TIME (PIT) 的恢复及主从复制 ( Replication) 环境的建立 。从表面上看其和重做日志非常相似, 都是记录了对于数据库操作的日志 。 然而, 从本质上来看, 两者有着非常大的不同。
首先, 重做日志是在InnoDB存储引擎层产生, 而二进制日志是在MySQL数据库的上层产生的, 并且二进制日志不仅仅针对于InnoDB存储引擎, MySQL数据库中的任何存储引擎对于数据库的更改都会产生二进制日志。
其次, 两种日志记录的内容形式不同 。 MySQL数据库上层的二进制日志 bin log是一种逻辑日志, 其记录的是对应 的SQL语句 。 而InnoDB存储引擎层面的重做日志是物理格式日志, 其记录的是对于每个页的修改。