为什么要做读写分离?
为了保证系统的高并发,肯定是需要做读写分离的。因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?
如何实现读写分离?
其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后从库读取binlog进行重放,这样主库和从库数据就一样,只不过并发量比较高时,会有主从同步延时问题
总的来说,MySQL复制有三个步骤
- 在主库上把数据更改记录到二进制日志中(Binary Log)中(这些记录被称为二进制日志事件)
- 备库将主库上的日志复制到自己的中继日志(Relay Log)中
- 备库读取中继日志中的事件,将其重放到备库数据之上
读写分离有可能有哪些问题?
主从数据库延迟比较大,有可能读取到旧数据