一图读懂 MySQL 半同步复制与无损半同步复制的区别_客户端

1.无损半同步复制:

主库先将事务记录写入二进制日志(binlog),并等待从库确认已写入中继日志(relay-log)。确认完成后,主库再将事务写入 InnoDB 存储引擎,最后返回客户端结果。在此过程中,只有在事务完全确认后,其他客户端才能看到该事务结果,确保了数据一致性。


2.半同步复制:

主库在写入二进制日志后直接将事务提交到存储引擎,并允许其他客户端看到该事务。与此同时,主库等待从库确认已写入中继日志后再返回客户端结果。这种模式下,如果主库在从库确认之前发生故障,可能导致数据不一致的风险。


总结

这两种模式的核心区别在于主库返回客户端结果和其他客户端可见该事务的时机,无损半同步复制优先确保一致性,而传统半同步复制则更侧重于性能。