数据库教程:MysqL应对高并发:读写分离

前言和用户无关的数据,比如页面配置,商品信息等,每个人请求的数据都相同,缓存的命中率非常高,几乎没有多少请求会穿透到Mysql。和用户相关的数据,使用缓存的效果就没那么好了,每个人的数据都不同,缓存的命中率不高,还是有想到一部分查询命中不了缓存,打到MySql上。随着用户量越来越多,打到Mysql上的读写请求也越来越多,当单台Mysql承受不了这么多并发时,应该怎么办。使用读写分离当单台Mysql无法满足要求时,只能用多个实例来承担大量的读写请求。简单有效的方案是,我们不对数据分片,而是使


前言

  • 和用户无关的数据,比如页面配置,商品信息等,每个人请求的数据都相同,缓存的命中率非常高,几乎没有多少请求会穿透到Mysql。
  • 和用户相关的数据,使用缓存的效果就没那么好了,每个人的数据都不同,缓存的命中率不高,还是有想到一部分查询命中不了缓存,打到MySql上。
  • 随着用户量越来越多,打到Mysql上的读写请求也越来越多,当单台Mysql承受不了这么多并发时,应该怎么办。

使用读写分离

  • 当单台Mysql无法满足要求时,只能用多个实例来承担大量的读写请求。
  • 简单有效的方案是,我们不对数据分片,而是使用多个具有相同数据的Mysql实例分担大量的查询请求,之所以能解决问题,实际上时基于读写比大概在几十比一这个客观情况。
  • 读写分离另外的好处时,实施起来简单,只需要把数据库的读写请求分开到不同Mysql实例就可以了。
  • 需要做到:
    • 部署一主多从多个 MySQL 实例,并让它们之间保持数据实时同步。
    • 分离应用程序对数据库的读写请求,分别发送给从库和主库。
  • 读写分离的一个副作用是,可能会存在数据不一致的情况。原因是,数据库中的数据在主库完成更新后,是异步同步到每个从库上的,这个过程有一个微小的时间差,这个时间差叫主从同步延迟。
  • 同一个事务中的查询操作也会被路由到主库,这样来规避主从不一致的问题
  • 对于这种主从延迟带来的数据不一致的问题,没有什么简单方便而且通用的技术方案可以解决,我们需要重新设计业务逻辑,尽量规避更新数据后立即去从库查询刚刚更新的数据

需要了解更多数据库技术:MysqL应对高并发:读写分离,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/818269.html

(0)
上一篇 2021年9月16日
下一篇 2021年9月16日

精彩推荐