28.mysql读写分离

187 阅读1分钟

一主多从就是数据库读写分离结构。

无代理结构

image.png 有代理结构

image.png 两个各有优势

因为主从延迟,客户端更新数据立即读,从库里读到的是更新前的数据,这是过期读。

为了读到从库的数据是新的,采用以下方案

  • 强制走主库方案:金融系统需要实时知道最新数据情况,只有走主库。
  • sleep方案:读从库前先等一会
  • 判断主备无延迟方案;
    • 判断位点一致;
    • 对比GTID集合

image.png

  • 配合semi-sync方案;主库确认备库收到了这个日志

image.png

  • 等主库位点方案;从库执行一条命令,如果结果大于0就在从库查,否则就到主库查

image.png

  • 等GTID方案:事务执行完返回的gtid,根据这个gtid判断从库是否可以查询。

image.png

过期读和不过期读,选择哪个就看业务需求。