美文网首页
mysql读写分离

mysql读写分离

作者: 史小猿 | 来源:发表于2019-01-23 10:09 被阅读6次

解决问题,读压力,解决不了存储压力
读表利用索引提升查询速度,主表可以不建很多索引提升写入速度。

带来问题

  • 主从复制延迟
    例如:注册完账号后,登陆显示无该用户
    解决方法
  1. 写操作后的读操作指定发给主服务器
    例如:注册完后,登陆读主库,这种方式和业务强绑定,如果新来的人不知道这样写代码,就会导致一个bug
  2. 读从机失败在去读主机(二次读取)
    对业务无绑定,只需要对底层数据库访问api进行封装即可,实现代价较小,不足之处在于如果有很多二次读取,将大大增加主机读的压力。
  3. 关键业务读写全部指向主机,非关键业务采用读写分离
    例如:注册登陆业务读写全部访问主机,用户介绍、爱好可以采用读写分离。
  • 分配机制
    1.程序代码封装
    优点实现简单。
    缺点每个编程语言都要实现一次,如果主从发生切换,则需要所有系统都修改配置并重启
    目前开源的 淘宝的TDDL
    2.中间件封装
    优点支持多种编程语言,主从切换无感知(中间件可探测主从状态,比如发一个写语句,成功的是主)
    缺点,实现复杂,所有读写请求经过中间件对性能要求高
    目前开源的 奇虎360 atlas

相关文章

网友评论

      本文标题:mysql读写分离

      本文链接:https://www.haomeiwen.com/subject/nltrlqtx.html