mysql的binlog_rows_query_log_events和binlog_row_image

1 . binlog_rows_query_log_events
binlog_rows_query_log_events 对binlog_format=row有效,设为true后可以在binary log中记录原始的语句。
2 . binlog_row_image
那么为什么要设置binlog_row_image? binlog的格式ROW格式有各种各样的好处。

  1. 比如加快从库重放日志;ROW直接调用mysql的存储引擎接口(handler API) 来执行行的插入、删除和更新,完全跳过了mysql的优化器的处理逻辑。

  2. 保证主从数据的一致性。记录的每一行的变更。

  3. 可以通过对binlog的逆向解析实现闪回功能。
    那么实际上还是有一个缺陷,那就是由于记录的是每一行的变更,会带来磁盘IO上的开销,同时由于binlog日志变大,网络开销也变大了。那么在MySQL 5.7以后binlog的格式默认就是ROW了,同时引入了新的参数binlog_row_image,

show variables like 'binlog_row_image';
默认为full,在binlog为row格式下,
full将记录update前后所有字段的值.
minimal时,只记录更改字段的值和where字段的值.
noblob时,记录除了blob和text的所有字段的值,如果update的blob或text字段.也只记录该字段更改后的值,更改前的不记录;

猜你喜欢

转载自blog.csdn.net/qq_28752033/article/details/84246013
今日推荐