Skip to main content

mongo

📅 2026-03-19 ✏️ 2026-03-19 CS INFRA
No related notes

1 · mongo#

适合文档模型、读写模式不完全固定、需要水平扩展的场景;核心看点是文档模型、副本集和分片。

1.1 · 分片

https://www.mongodb.com/docs/manual/sharding https://www.mongodb.com/zh-cn/docs/v6.0/sharding

组件:数据分片(通常每个分片本身是副本集)、mongos 查询路由、config server 元数据管理;

在集合级别(表)分片,把一个集合拆分到各个分片中。

集合有一个分片键,分片键由文档中的一个或多个字段组成; 基于分片键,划分处不重叠的范围(分配策略),每个范围与数据块chunk关联;

分片策略: 范围分片、散列分片、区域分片; 分片键用于路由查询; NOTE: 主分片,保存该数据库所有未分片合集;每个数据库都有自己的主分片;

chunk:超过阈值后会切分,后台负载均衡器负责迁移 chunk 以均衡各分片负载;

1.2 · mongo tips#

50 Tips and Tricks for MongoDB Developers

  1. 定义schema时需要注意的点
  2. 使用mongo
  3. 优化加速
  4. 数据安全(不牺牲太多性能):分片、日记
  5. 管理员:配置、运行
  • tips 1

数据冗余是为了性能,数据引用是为了完整性。 决定因素:1. 读多写少->冗余,基本没有数据完整性问题;2.保障一致性->引用 3. 快速读->冗余