Mysql主从复制原理和三种复制:异步、同步、半同步(主的binlog、从的relaylog)

借鉴:https://zhuanlan.zhihu.com/p/651625709
https://www.jb51.net/article/258847.htm

一:Mysql主从复制原理

MySQL的复制原理分三步
1.在主库上把数据更改,记录到二进制日志(Binary Log)中。
2.从库将主库上的日志复制到自己的中继日志(Relay Log)中。
3.备库读取中继日志中的事件,将其重放到备库数据之上。

Mysql主从复制原理和三种复制:异步、同步、半同步(主的binlog、从的relaylog)_第1张图片

二:三种复制(异步、同步、半同步)

1.异步

异步复制模式,主库在执行完客户端提交的事务后,只要将执行逻辑写入到binlog后,就立即返回给客户端,并不关心从库是否执行成功

Mysql主从复制原理和三种复制:异步、同步、半同步(主的binlog、从的relaylog)_第2张图片

2.同步

当主库执行完客户端提交的事务后,需要等到所有从库也都执行完这一事务后,才返回给客户端执行成功。因为要等到所有从库都执行完,执行过程中会被阻塞,等待返回结果,所以性能上会有很严重的影响。

Mysql主从复制原理和三种复制:异步、同步、半同步(主的binlog、从的relaylog)_第3张图片

3.半同步

半同步复制模式,可以说是介于异步和同步之间的一种复制模式,主库在执行完客户端提交的事务后,要等待至少一个从库接收到binlog并将数据写入到relay log中才返回给客户端成功结果。

你可能感兴趣的:(mysql,数据库)