nosql - 为什么 NoSQL 在 "scaling out"上比 RDBMS 更好?

标签 nosql scalability rdbms

我在 technical blog 中阅读了以下文字讨论 NoSQL 的优缺点

"
多年来,为了提高数据库服务器的性能,数据库管理员不得不随着数据库负载的增加(向上扩展)购买更大的服务器,而不是随着负载的增加(向外扩展)将数据库分布在多个“主机”上。 RDBMS 通常不容易横向扩展,但较新的 NoSQL 数据库实际上旨在轻松扩展以利用新节点,并且通常在设计时考虑到低成本的商品硬件。 "

我对 RDBMS 和 NoSQL 的可扩展性感到困惑。

我的困惑是:

  • 为什么 RDBMS 的横向扩展能力较差?以及购买更大的服务器而不是购买更便宜的服务器的原因。
  • 为什么 NoSQL 更能横向扩展?
  • 最佳答案

    RDBMS 具有 ACID ( http://en.wikipedia.org/wiki/ACID ) 并支持事务。由于这些概念,使用 RDBMS 进行“扩展”更难实现。

    NoSQL 解决方案通常提供记录级原子性,但不能保证一系列操作(事务)会成功。

    归结为:为了保持数据完整性和支持事务,多服务器 RDBMS 需要有一个快速的后端通信 channel 来同步所有可能的事务和写入,同时防止/处理死锁。

    这就是为什么您通常只能看到 1 个主(写入器)和多个从(读取器)。

    关于nosql - 为什么 NoSQL 在 "scaling out"上比 RDBMS 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8729779/

    相关文章:

    Cassandra 主键允许重复

    database-design - 如果关系数据库的正式设计方法是实体关系图,那么 NOSQL 数据库的方法是什么?

    c# - SignalR 不适用于负载平衡

    mysql - 大型 MySQL 表更新速度慢

    rdbms - DBMS 与 RDBMS 有何不同?

    redis - 比较 1000 万套彼此

    mysql - Redis/Memcached/MongoDB(或任何 NoSQL 系统)是否支持 MySQL 的 ON DUPLICATE KEY UPDATE?

    java - 使用 Tomcat 扩展 SpagoBI 应用程序

    mysql - 当默认情况下所有内容映射到所有内容时,多对多的正确设计

    database - 为什么 OODBMS 不像 RDBMS 那样广泛?