Mysql读写分离

1.为什么要读写分离

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

原理

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

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

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

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

2.读写分离的实现步骤

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

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

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

  • 利用中间件(Mycat、Oneproxy)(数据库变化中间也要调整,配置复杂,且臃肿)
  • 基于spring的AOP的方式,通过拦截器过滤并做数据库访问切换;(最优选择)

你可能感兴趣的:(Mysql读写分离)