首页 > 解决方案 > Mysql 基于行的二进制日志记录在某些版本的 mysql 中表现不同(行分组)

问题描述

在某些版本的 mysql 中对行更改进行分组时,Mysql 基于行的二进制日志记录似乎具有不同的行为。

假设以下语句更新了三行:

UPDATE table_name SET a=1 WHERE id IN (1, 2, 3);

在 mysql5.7.21中:二进制日志只接收一个包含 3 个寄存器更改的日志。(这是我想要的行为)

但是,在 mysql5.7.11和 mysql中测试时5.7.26,相同的语句会产生三个单独的日志。它们中的每一个都包含每个更改的行。

我检查了系统变量,至少与二进制日志相关的变量似乎完全相同。

我们检查了--binlog-row-event-max-size可能导致问题的启动变量。因为我们表中的行可能大于默认的 8KB。但是,我们无法设置此变量。因为我们在 Amazon RDS 中工作。(我们该怎么做?)

是否有其他变量可能导致这种行为?

标签: mysqlamazon-rdsmysqlbinlogmysql-variables

解决方案


推荐阅读