binlog和redo log都记录了数据库的操作日志,那么两者之间的差别是什么呢?
一.产生的地方不一样
redo log是在innodb即存储引擎层产生的;
binlog是在mysql的服务层产生的;
二.记录的内容形式不同
redo log记录的是物理格式日志,记录的是对每个页的修改,涉及到偏移量等;
binlog记录的是逻辑更改,即执行的sql语句;
三.写入磁盘时间点不同
redo log的写入条件有三个:1.master thread 每秒执行会将redo log buffer刷入redo log;2.事务提交的时候写入;3.redo log buffer可用空间少于一定程度会将redo log buffer写入redo log;也就是说:事务开始后,redo log就开始不断的写入;
binlog只有在事务提交时才写入;