MySQL主从同步的简单理解
许多大型网站为了减轻海量用户对于服务器并发访问量的性能问题,会使用很多解决的方案,
数据库主从分离,就是目前主流的一种解决手段。
想一下每个用户都通过控制层业务层调用服务器数据,用户量小还好说,用户量大的话轻则用户体验极差,重则数据库崩溃甚至数据丢失,那真的就是很严重的事情了。
如何解决,解决方案之一就是主从分离。
主从那长话短说就是,一台服务器我处理不了就用几台服务器咯,
但是这些服务器是有主次之分以及职责划分的。
- 将我们对数据库的读写操作分别放到不同的服务器集群中运行。
- 一般主服务器负责写入,从服务器负责读取。
- 主服务器做的操作同步到从服务器中。
- 主从配置只需要配置数据库,无需修改业务代码。
那么来讲一下具体的工作原理,如图:
登录后复制
- 主服务器(Master)将数据信息(Data changes)存储到二进制日志中(Binary log)
- 从服务器开启一个I/O线程(I/O thread),用于连接主从服务器,并拷贝/同步主服务器的操作。
- 将这些操作同步到中介日志中(Relay log)
- 从服务器重复主服务器的操作(Replay / Read)
从服务器执行主服务器的同步操作也要一步一步的来,可以类比生产者消费者案例,
所以需要同步到从服务器日志中一步一步的同步执行。