高性能数据库之 读写分离

前言
随着业务的不断发展,单机数据库已经不能满足业务需要。接下来讲讲数据库集群的几种方式:读写分离和分库分表。

读写分离
原理
读写分离的原理就是将数据库的读写操作分散在不同的节点上。

实现方式
多台数据库搭建一个集群,一台数据库做主库,其他数据库做从库。

主库负责写操作,从库负责读操作

主库通过复制将数据的变更同步到从库,每台节点都有完整的数据

需要考虑的问题
复制延迟

主库在数据变更后,不可能立即去进行同步,会有一个延迟。如果这时遇到修改完数据需要立即读出数据的场景,去从库读读是不可行的。这里有几个解决办法

这次写操作后的读操作指定使用主库
这种读操作就会是正确的,但是和业务很耦合

从库查询失败,去主库进行二次查询
这种实现较为简单,但是要考虑二次查询的频率,如果二次查询场景很多,会增加数据库压力。
3. 关键业务只走主库,其他走从库
比如用户修改了登录信息,这时需要走主库(不然会登录不上)。如果是修改了个性签名,可以进行读写分离。

分配机制
将读写分开,访问不同数据库,一般有两种方式:代码封装和中间件封装。

代码封装
就是在代码中,实现数据库连接的管理,自由分配读写分离。
特点:
实现简单
如果发生主从切换,就会比较麻烦,则需要修改配置并重启服务
中间件封装
中间件封装的意思就是独立出一个数据库管理系统,实现读写分离和数据库连接管理。业务系统像连接数据库服务器一样连接这个管理系统。
特点:
实现较复杂
可以应用于很多业务系统中
业务系统不用关心主从切换,管理系统可以动态识别哪个库是主库(可写)
总结
读写分离适合读多写少的业务场景。
在单机数据库情况下,表上家索引会优化查询,但是影响写入速度。读写分离后可以单独对读库进行优化,写库写入速度也会提高。

转自:https://blog.csdn.net/xcy1193068639/article/details/105014975

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值