加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一文读懂mysql的主从同步原理

发布时间:2022-11-18 13:32:25 所属栏目:MySql教程 来源:转载
导读: 废话少说,先上图

基本过程
1.当master中发生数据改变时,会将变更记录写入二进制文件binlog中,也就是配置文件中log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)
2.m

废话少说,先上图

mysql原理_mysql alter table 原理_mysql left join 原理

基本过程

1.当master中发生数据改变时,会将变更记录写入二进制文件binlog中,也就是配置文件中log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)

2.master通过binlog dump线程把二进制日志内容推送给Slave(从库)

3.Slave通过I/O线程读取Master中的binary log events并写入到它的中继日志(relay log)

4.Slave通过sql线程重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储(数据重放)

push or pull?

master通过dump线程将数据push给slave,slave是被动接收,而不是主动获取。

为什么是多个线程?

实现数据获取和重放的解耦,将同步过程变为异步执行,提高效率。

关于中继日志

slave的 I/O 线程将master的 binlog 日志读取过来,解析到各类 Events 之后记录到slave本地文件,这个文件就被称为 relay log。然后 SQL 线程会读取 relay log 日志的内容并应用到从服务器mysql原理,从而使从服务器和主服务器的数据保持一致。中继日志充当缓冲区,这样 master 就不必等待 slave 执行完成才发送下一个事件。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!