直接回答:NoSQL 通过水平扩展应对扩展性挑战:数据按分片键拆分到多节点(sharding),副本集提供冗余与读扩展,节点可随负载动态加入。为换取弹性,多数 NoSQL 放弃跨分片强事务,采用最终一致与去中心化的无主或对等架构。

展开解析:关键机制:

  • 分片策略:范围分片利于范围查询但易热点;哈希分片分布均匀但失去范围扫描;一致性哈希减少节点变动时的数据搬迁。
  • 副本与共识:Cassandra 类无主架构用 Quorum 读写调一致性级别;MongoDB 副本集用 Raft 类选举保证主唯一。
  • 弹性运维:再均衡(rebalancing)自动迁移分片;读扩展加副本,写扩展加分片。
  • 放弃的东西:跨分片 JOIN 与事务昂贵,数据模型要按查询模式反范式设计。

对比:关系型也能分库分表,但多靠中间件人工拆分,运维成本高;NoSQL 把分片内建进内核,代价是查询能力受限。

追问方向:分片键选择原则、热点问题与解决、跨分片事务(如 2PC、Percolator 模型)。