MySQL 的 binlog_order_commits 参数的默认值为 OFF,即关闭状态,如果将其设置为 ON,则会强制将 binlog 和 InnoDB 的提交顺序保持一致。
当 binlog_order_commits 参数设置为 OFF 时,MySQL 不会强制保证 binlog 和 InnoDB 的提交顺序一致。这可能会导致在出现故障时丢失一些数据,因为 binlog 可能会先写入磁盘,而 InnoDB 可能还没有写入。但是,对于绝大多数应用程序而言,这种影响非常小,因此默认情况下该参数是关闭的。
如果将该参数设置为 ON,则 MySQL 会强制将 binlog 和 InnoDB 的提交顺序保持一致,从而确保数据的一致性和完整性。但是,这可能会对性能产生一定的影响,因为必须在提交事务之前等待 binlog 写入完成。如果你的应用程序需要保证数据的一致性和完整性,则应该将该参数设置为 ON。
针对这个问题,如果你将该参数设置为 OFF,然后使用半同步复制或 MGR 进行复制,理论上不应该对复制造成影响,因为半同步复制和 MGR 使用的是不同的复制机制,并不依赖于 binlog_order_commits 参数。但是,在某些特定情况下,关闭该参数有可能会导致数据的不一致性,或许还要提供你更多的信息。