能力
| 优点
| 不敷
| 备注
| |
ROW
| 基于行的复制(row-based replication, RBR),不记录每条SQL语句的上下文信息,仅需记录哪条数据被修改了
| 稳定性较好,不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的题目;
| 会产生大量的日记,尤其是 alter table 的时候会让日记暴涨。
| MySQL 5.7.7 之后,默认值是 ROW
|
STATMENT
| 基于SQL语句的复制( statement-based replication, SBR ),每一条会修改数据的SQL语句会记录到 binlog 中
| 不需要记录每一行的变化,淘汰了 binlog 日记量,节约了 IO , 从而提高了性能;
| 在某些情况下会导致主从数据不同等,好比实行sysdate() 、 slepp() 等
| MySQL 5.7.7 之前,默认的格式是 STATEMENT
|
MIXED
| 基于 STATMENT 和 ROW 两种模式的混淆复制(mixed-based replication, MBR),一般的复制使用 STATEMENT 模式生存 binlog ,对于一些函数,STATEMENT 模式无法复制的操纵使用 ROW 模式生存 binlog。
| | | |