mysql 读写分离和主从同步原理

导读:本篇文章讲解 mysql 读写分离和主从同步原理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一 为什么需要将 mysql 进行读写分离?

二 mysql 主从同步原理?

三 为什么主从同步会有数据延迟问题

四 主从同步延迟问题解决方案


一 为什么需要将 mysql 进行读写分离?

       读写分离是基于数据库集群的主从同步来做的,所谓的读写分离是:写操作访问主库,读操作访问从库。现实生活中更多的应用场景是读多写少,读写分离可以将写的压力集中放在集群的主库,读的压力分散到集群的不同从库上。

二 mysql 主从同步原理?

mysql 读写分离和主从同步原理

  • 主库在进行数据变更的同时,将变更内容写入 binlog 文件中。
  • 从库通过一个 io 线程读取主库的 binlog 写到本机的 relay log 中。
  • 从库通过 SQL 线程读取 relay log 中的 binlog,并执行 binlog ,将数据变更反映它自己的数据。

三 为什么主从同步会有数据延迟问题

       从库同步主库数据的过程是串行化的,也就是说主库上并行的操作,在从库上会串行执行。由于从库从主库拷贝日志以及串行执行 SQL 的特点,在高并发场景下,从库的数据一定会比主库慢一些,是有延时的。所以经常出现,刚写入主库的数据,读从库没有数据。

四 主从同步延迟问题解决方案

1. 写主库,读主库

       比如,最近业务中对手机号码进行加密之后,马上进行解密,加密数据是写入主库,解密数据是读从库。由于延迟较大,就出现了写主库成功,读从库失败的问题。这种方式不推荐,一旦读写都走主库,就失去了读写分离的意义。

2. 读从库失败后读主库

       当读取从库失败后,再读一次主库,这种方式在于如果读从库失败次数较多时,将增加主库的读操作压力。

3. 核心业务读写主库,非核心业务读写分离

       核心业务就是说对用户比较敏感的操作的时候读写主库,其他的对用户感知不是特别明显的可以读写分离。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/9608.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!