为什么主从复制?
主库写,从库读,即使主库出现锁表情况,从库也可以正常读,提高效率。
复制原理
步骤:
1、主服务器(master)把数据更改到二进制文件日志(binlog)中
2、从服务器(slave)把从服务器的二进制日志复制到自己的中继日志(relay log)中
3、从服务器重做中继日志中的日志,把更改应用到自己的库中,已达到数据的最终一致性。
原理:
mysql主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。
在主库里,只要有更新事件出现,就会被依次地写入到binlog里面,是之后从库连接到主库时,从主库拉取过来进行复制操作的数据源。
binlog输出线程。每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。
对于每一个即将发送给从库的sql事件,binlog输出线程会将其锁住。一旦该事件被线程读取完之后,该锁会被释放,即使在该事件完全发送到从库