Skip to content

分片与水平扩展 ​

分片(Sharding)通过把数据水平切分到多个分片来突破单副本集的容量与吞吐上限。但分片引入 mongos 路由、config server、chunk 迁移与分片键约束等复杂度。分片不是一般性能问题的第一解决方案——先穷尽索引、建模、副本集读扩展。

本章条目 ​

编号条目类型难度一句话摘要
SHARD-01分片集群与分片键设计指南高级组件、分片键约束、range/hash、热点、chunk、resharding

核心原则 ​

分片是最后手段,不是第一选择

分片建议必须基于:数据量、增长率、工作集大小、吞吐、查询模式和故障域。把分片当作「查询慢」的通用解法,往往在错误的分片键上制造出更难解决的热点与运维负担。

  • 分片键决定一切:基数、频率、单调性、查询隔离性决定数据分布与路由效率,且难以更改。
  • targeted 查询 vs scatter-gather:查询含分片键 → 定向到单/少数分片;不含 → 广播到所有分片。
  • 迁移有代价:balancer 迁移 chunk 消耗资源,jumbo chunk 无法迁移。

相关主题 ​

ICP 备案号待补充 · Gitee 主页