借鉴:https://zhuanlan.zhihu.com/p/651625709
https://www.jb51.net/article/258847.htm
一:Mysql主从复制原理
MySQL的复制原理分三步
1.在主库上把数据更改,记录到二进制日志(Binary Log)中。
2.从库将主库上的日志复制到自己的中继日志(Relay Log)中。
3.备库读取中继日志中的事件,将其重放到备库数据之上。
二:三种复制(异步、同步、半同步)
1.异步
异步复制模式,主库在执行完客户端提交的事务后,只要将执行逻辑写入到binlog后,就立即返回给客户端,并不关心从库是否执行成功
2.同步
当主库执行完客户端提交的事务后,需要等到所有从库也都执行完这一事务后,才返回给客户端执行成功。因为要等到所有从库都执行完,执行过程中会被阻塞,等待返回结果,所以性能上会有很严重的影响。
3.半同步
半同步复制模式,可以说是介于异步和同步之间的一种复制模式,主库在执行完客户端提交的事务后,要等待至少一个从库接收到binlog并将数据写入到relay log中才返回给客户端成功结果。