- mysql做读写分离
读写分离是提高mysql并发的首选方案。
- Mysql主从复制的原理
mysql的主从复制依赖于binlog,也就是记录mysql上的所有变化并以二进制的形式保存在磁盘上,复制的过程就是将binlog中的数据从主库传输到从库上。
主从复制过程详细分为3个阶段:
第一阶段:主库写binlog。提交数据,并更新本地数据。
第二阶段:同步binlog。binlog复制到所有从库上。每个binlog写到暂存日志中。
第三阶段:回放binlog。并更新存储数据。
mysql默认是异步模式。mysql主库提交事务的线程并不会等待binlog同步到各从库,就返回客户端结果。这种模式一旦主库宕机。数据就会发生丢失。
Mysql主从复制还有哪些模型?
电商平台的商品评论的实际案例,设计一个主从复制的延迟方案
- 主从复制延迟导致的异常的处理方案:
1)直接查询主库
该方案在使用时要提前明确查询的数据量不大,不然会出现主库写请求锁行,影响读请求的执行,最终对主库造成比较大的压力。
2)使用数据冗余。
可以在异步调用审核模块时,不仅仅发送商品ID,而是发送审核模块需要的所有评论信息,借此避免在从库中重新查询数据,但你要注意每次调用的参数大小,过大的消息会占用网络带宽和通信时间。
3)使用缓存解决
可以在写入数据主库的同时,把评论数据写到redis缓存里,这样其他线程在获取评论信息时,会优先查询缓存,也可以保证数据的一致性。
- 当 MySQL做了主从分离后,以前只需要使用一个数据库地址操作数据库,现在却要使用一个主库地址和多个从库地址,并且还要区分写入操作和查询操作,那从工程代码上设计,怎么实现主库和从库的数据访问呢?