我在 technical blog 中阅读了以下文字讨论 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/