MySQL 主从复制原理
【摘要】 主从复制是 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)