gpt4 book ai didi

scalability - 写RDBMS缺陷时没有水平可扩展性?还是所有 DBMS 都会发生这种情况?

转载 作者:搜寻专家 更新时间:2023-10-30 23:23:20 25 4
gpt4 key购买 nike

当您在读取数据库时遇到问题时,您有两种选择:通过在服务器中放置更多硬件来垂直扩展,或者通过放置第二台服务器来帮助卸载读取来水平扩展。

将读取卸载到第二台服务器,意味着所有写入都将命中两台服务器,而读取只命中一台。

问题是当你写到顶峰时,因为写必须发生在所有服务器上,这意味着所有服务器都将因写请求而重载,并且服务器无法使用。为问题添加更多服务器无济于事,因为它只会添加更多将过载的服务器。所以你必须垂直缩放。

这是 RDBMS 特有的东西吗?还是所有 DBMS 都会发生这种情况?

我知道您可以在软件方面做一些事情,并将数据库一分为二,例如。所有条目在一个数据库中以 0-m 开头,而在另一个数据库中以 n-z 开头,但恕我直言,它更像是一种解决方法,而不是问题的解决方案。

最佳答案

我看不出这会特定于关系模型。所有必须读取和写入的数据库(这是大多数数据库)都会有类似的问题。

就其值(value)而言,大多数数据库的读取次数远远多于写入次数,因此写入屋顶的发生频率比您想象的要低。此外,根据您的方法,负载平衡数据库往往是立即写入主数据库,并排队写入所有辅助数据库(至少根据我的经验)。

在这种情况下,您实际上并没有以用户身份等待多次写入,您只是等待第一次写入。 DBMS 本身管理实例之间的同步。这当然意味着辅助数据库可能不是完全最新的,但这是可以控制的。从技术上讲,这打破了整个系统的 ACID 属性,但可以围绕它进行架构设计。

关于scalability - 写RDBMS缺陷时没有水平可扩展性?还是所有 DBMS 都会发生这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com