redo log 是物理日志,记录的是"在某个数据页上做了什么修改";
binlog是逻辑日志,记录的是这个语句的原始逻辑,比如"给ID=2 这一行的c字段加1";
上面是极客时间上的内容;
然而
根据高性能MySQL第二版第8章 复制讲述:
MySQL支持两种复制方案:基于语句复制(Statement-Based Replication)和基于行复制(Row-Based Replication)
基于语句复制在MySQL3.23就存在了,它也是现在使用最多的复制方式。
基于行复制是MySQL5.1的新特性。
基于行复制不就是直接复制一行的内容在binlog吗?怎么还能说是逻辑日志,记录的是语句的原始逻辑呢
这个是正确的,可能你理解有误。目前
redo
日志不参与复制,而且只有Innodb
引擎有redo
日志。基于语句复制和基于行复制指的是
binlog
的格式,由参数binlog_format
指定。binlog
里面binlog
里面