Mysql读写分离

<meta charset="utf-8">

1.为什么要读写分离

  • 单个数据库服务器挂了,数据库里面所有的数据都挂了
  • 所有的读写请求都是对单个数据库操作,数据库服务器压力巨大

原理

主数据库与多个从数据库实现了主从复制

当应用发起对数据库的写操作时,那么就去操作主数据库

当应用发起对数据库的读操作时,那么通过负载均衡算法去访问从数据库。

系统一般来说时“读多写少”,因此这样在一定程度上减轻了数据库的压力。

2.读写分离的实现步骤

①实现主从数据库复制,主数据库写入操作后,异步同步到从数据库。

  • 基于 SQL 语句的复制(statement-based replication, SBR);
  • 基于行的复制(row-based replication, RBR);
  • 混合模式复制(mixed-based replication, MBR);

②不同数据库操作的请求,访问不同的数据库

  • 利用中间件(Mycat、Oneproxy)(数据库变化中间也要调整,配置复杂,且臃肿)
  • 基于spring的AOP的方式,通过拦截器过滤并做数据库访问切换;(最优选择)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容