文档数据库集合
Collection 是什么?
一组文档,相当于表,但不强制统一结构
类比:一个文件柜抽屉,里面放格式相近的文件
和表的区别
MySQL 的表要先定义列和类型,插入不符合结构的数据直接报错。MongoDB 的集合不强制 schema,同一集合里的文档字段可以不同。
但「灵活」不等于「随便」:生产环境建议用 schema validation 做基本约束,否则数据会越来越脏。
索引建在集合上
索引、分片键、校验规则都定义在集合级别。集合名建议用复数、带业务前缀,如 orders、user_events。
- 单字段索引、复合索引、多键索引、文本索引、TTL 索引
- TTL 索引可以让文档到期自动删除,适合日志和会话
- explain 看 winningPlan,COLLSCAN 说明没走索引