MySQL 主从复制原理

举报
yd_283123001 发表于 2026/11/01 19:27:52 2026/11/01
【摘要】 主从复制是 MySQL 高可用和读写分离的基础,它的核心机制是「binlog + 日志回放」。整个过程分三步。第一步,主库(Master)在事务提交时,把数据的变更记录写入二进制日志(binlog)。第二步,从库(Slave)开启一个 IO 线程,连接主库并请求 binlog 的备份。第三步,主库的 Binlog Dump 线程把日志内容发送给从库,从库写入本地的中继日志(relay log...

主从复制是 MySQL 高可用和读写分离的基础,它的核心机制是「binlog + 日志回放」。

整个过程分三步。第一步,主库(Master)在事务提交时,把数据的变更记录写入二进制日志(binlog)。第二步,从库(Slave)开启一个 IO 线程,连接主库并请求 binlog 的备份。第三步,主库的 Binlog Dump 线程把日志内容发送给从库,从库写入本地的中继日志(relay log),再由 SQL 线程按顺序回放,最终让从库的数据与主库保持一致。

复制有三种常见格式:STATEMENT 记录 SQL 语句,ROW 记录行级变更,MIXED 则是两者的混合。生产环境一般推荐使用 ROW 格式,因为它能精确还原每一行的修改,安全性更高。

主从复制能带来读写分离、数据备份、负载均衡等好处,但也可能因为主从延迟导致读到旧数据。延迟通常来自从库单线程回放,MySQL 5.6 之后支持多线程复制,可以明显缓解这个问题。

一句话:主库负责写,从库负责复制和读,数据通过 binlog 同步。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。