数据库运维
记录DBA学习成长历程

MySQL的binlog记录方式

binlog是SQL层的功能。记录的是变更SQL语句,不记录查询语句。

记录SQL语句种类

DDL :原封不动的记录当前DDL(statement(语句)方式)。
DCL :原封不动的记录当前DCL(statement(语句)方式)。
DML :只记录已经提交的事务DML

DML三种记录方式

binlog_format(binlog的记录格式)参数影响
(1)statement(5.6默认)SBR(statement based replication) :语句模式原封不动的记录当前DML。
(2)ROW(5.7 默认值) RBR(ROW based replication) :记录数据行的变化(用户看不懂,需要工具分析)
(3)mixed(混合)MBR(mixed based replication)模式 :以上两种模式的混合

SBR与RBR模式的对比

STATEMENT:可读性较高,日志量少,但是不够严谨
ROW :可读性很低,日志量大,足够严谨
update t1 set xxx=xxx where id>1000 ? -->一共500w行
row模式怎么记录的日志? 为什么row模式严谨?
id name intime这张表,数据插入操作insert into t1 values(1,'zs',now())
我们建议使用:row记录模式
赞(0)
MySQL学习笔记 » MySQL的binlog记录方式