我正在为 MySQL 8.0.x 使用 Percona 服务器。我已经在 GTID 模式关闭的两个实例之间设置了复制。几乎所有 UPDATE 和 INSERTS 都从应用程序端包装在事务中。
在从服务器上查看来自主服务器的 binlog 时,我注意到有很多空事务。当在该事务中没有要执行的内容时,它们是什么以及为什么它们会出现在 binlog 中。
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
# original_commit_timestamp=1587391567871055 (2020-04-20 14:06:07.871055 UTC)
# immediate_commit_timestamp=1587391567871055 (2020-04-20 14:06:07.871055 UTC)
/*!80001 SET @@session.original_commit_timestamp=1587391567871055*//*!*/;
/*!80014 SET @@session.original_server_version=80019*//*!*/;
/*!80014 SET @@session.immediate_server_version=80019*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
SET TIMESTAMP=1587391567/*!*/;
BEGIN
/*!*/;
COMMIT/*!*/;