项目优化Day02-02-MySQL主从复制-介绍.md
Mysql主从复制
1.介绍:
Mysql主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台Mysql数据库(slave,从库)从另一台Mysql数据库(master,主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。Mysql主从复制是Mysql数据库自带功能,无需借助第三方工具。
Mysql复制过程分成三部:
1.master将改变记录到二进制日志(binary log)
2.slave将master的binary log拷贝到它的中继日志(relay log)
3.slave重做中继日志的事件,将改变应用到自己的数据库中
比如我发了一个insert来操作master主库,这个时候他除了要把我们数据插入到表里面之外,他还记录了日志,也就是刚才说的二进制日志,他会把数据变化记录到二进制日志文件里面,这个文件叫做binlog。从库有个专门的线程(I/O Thread)来负责从主库这边读取这个日志文件,读过去之后把这个日志写到自己的一个文件里面去,叫做relaylog,叫做中继日志。写过去之后,从库这边还有另外一个线程叫做SQL Thread,这个线程会从我们的中继日志里面来解析这个日志,解析完之后就知道我们刚才在主库这边执行的是什么操作。解析完之后他会replay回放,也就是把这个SQL在自己的库里面执行一遍。所以最终的效果看到的就是我们从库这边也多了一条数据。