数据库读写分离的使用场景

1条留言 [数据库技术] 季雨林 2020/5/12 23:31:18

数据库读写分离,已经是个数据库优化使用的老办法,本文要说的是使用场景问题。


按照我的理解,首先,数据库读写分离,适用场景是读远远大于写,这其实已经是大部分业务的共有特点,比如论坛,比如博客,作者编辑一片博客是写入,网友前来访问时查询,很显然,典型的属于“一次写入,无数次查询”的业务特征。

在类似于新闻、博客这样的场景下,数据库性能压力显然来自于读,因此将来如果数据库服务器单机承载不了,那可以轻松的使用主动分离,然后主库做写入,实时同步给从库的方式,然后读取压力,全都走从库,当然,一主多从才是更加轻松提高读取量的重要手段


读写分离的要素:局域网不同服务器,一主多从,多个相同的站点访问不同的从库。

实现读写分离的重要原因,在于讲读的压力分散到不同数据库服务器,所以读性能会有提升。因此读写分离一般建议配置多个从库去读,至于多个从库怎么读,则取决于前端分流,比如20个web服务器,分别配置10台访问A从库,另外10台访问B从库,但是写入呢,20台都像唯一的主库写入。


为什么读写分离不能提高写的效率?

有人提出过疑问,读写分离减轻了主库的读负载,那么集中精力写也算是提升写入能力了。这个解释虽然不算错,但是这个思维是有局限的:无论单机数据库怎么优化,显然不会突破硬盘物理写入极限,所以说,读写分离对于提升写入并没有直接效果

提升写库效率,有哪些方案?

很少有业务,能像传感器采集那样“写大于读”,所以说到这个物联网领域,很多人就有点惊讶了,其实也不难,道理都一样,那就是分散压力,一台机器不行,用10台机器合伙去干!

最简易的表分区,可能还是从单机的单硬盘多硬盘下手;

进一步的分表则跟表分区相似,但是对外表现已经不是单表了;

再进一步分库方案,则开始考虑集群多机器的分布式方案;

再进一步,分布式数据库,则已经完全要求通过集群分布式实现,最典型的比如阿里云DRDS之类的。



原文地址: https://www.opengps.cn/Blog/View.aspx?id=701 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

2020/6/9 16:57:13, 218.77.62.*说:
读写分离的方案 目前其实有多种替代方案,其中MongoDB 我认为 是最好的,主从 避不开 数据同步问题 如果业务的并发量太大 就容易出现同步不及时,脏读,严重 出现从数据库 同步异常无法进行同步

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示