为什么数据库读写分离能提高数据库的性能?

 我来答
爆炸悦悦
2019-08-05 · TA获得超过1.4万个赞
知道小有建树答主
回答量:680
采纳率:0%
帮助的人:17.1万
展开全部

读写分离主要目的是提高系统吞吐量。某些网站同一时间有大量的读操作和较少的写操作。同时,读操作对数据的实时性要求并没有那么高。在此前提下,可以这么设计解决方案。
所以你问题里“数据仍然需要同步”这个理解是不对的。事实上,正是由于允许用户读到几秒钟甚至几分钟前的数据,才可以使用读写分离的。

数据库里面concurrency control是最复杂的组件之一。因为transaction是原子性的,但要保证原子性就得上锁,要不然读写操作之间就有inconsistency。为了减少锁的代价,数据库往往会提供多种consistency level供选择。

而如果读写分离了,那么只读操作的那些服务器就完全不需要考虑锁的问题了,完全可以选哪个最低代价的consistency level。只有执行写操作的服务器需要用强的consistency level。虽然读服务器也需要隔一段时间更新一下,但只有更新时才需要加锁。

所以这种方案其实就是以数据的时效性,换取了读操作的吞吐率。

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
大土豆td123
2019-08-05 · TA获得超过2.4万个赞
知道小有建树答主
回答量:1339
采纳率:98%
帮助的人:34.9万
展开全部
在网上经常看到这样的文章,某某论坛压力太大,于是在后台把mysql服务器分离成两台A、B,A专门做写操作,再通过数据复制把数据写到B,读取数据都来自B很疑惑,除了机器的性能强大和IO能获得一些好处(一台机变两台机)以外,真的能改进性能吗?B机器还照样要写(复制也是写),而且写得一点不少。中间产生的lock也是一样的。复制可以稍微有几秒的不同步时间,感觉就跟采用了低优先级写差不多,差别只是,如果用了低优先级写,在写入的时候网页要停顿一下,现在用了复制,网页不停顿了,但可能再打开的时候发现还没写上(因为可能存在复制时延),其实都是半斤八两了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小田6980
2019-08-05 · TA获得超过1085个赞
知道答主
回答量:1580
采纳率:88%
帮助的人:108万
展开全部
因为这是数据可独有的特性,能够帮助数据实现更多的分类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c2百账号
2019-08-05 · TA获得超过7329个赞
知道小有建树答主
回答量:1.1万
采纳率:100%
帮助的人:750万
展开全部
因为读写分离主要目的是提高系统吞吐量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你骂我我吃亏0
2019-08-05 · TA获得超过1万个赞
知道小有建树答主
回答量:7334
采纳率:100%
帮助的人:182万
展开全部
因为数据库就有着这样的功能,他们提高数据库的性能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式