一 库
1 使用数字字母下划线,长度最多64个字符,推荐使用业务标识命名
2 不能和系统库重合(admin,local,test,config)
3 大小写敏感,推荐全部小写
二 集合
1 使用数字字母下划线,长度最多64个字符,推荐使用业务标识命名
2 集合名称禁止以system.开头。
3 大小写敏感,推荐全部小写
4 禁止使用_id比如向_id中写入自定义内容
5 针对超长文本采用压缩存储,防止查询导致网卡阻塞
6 针对表数据量增长的情况提前采取分片措施
7 正确使用写关注设置 Write Concern
1 | 要求进行写入确认 |
2 | 要求以写入到副本集的主服务器和一个备用服务器 |
majority | 要求已写入到副本集中的大多数服务器中 |
三 索引
1 索引也遵循联合索引最左匹配原则,所以建立联合索引时要注意
2 索引建立命名统一以idx_开头命名
3 索引失效场景: 正则表达式及非操作符,如 $nin, $not, 等。
算术运算符,如 $mod, 等。
4 尽量不为数组元素创建索引,一旦指定数组元素索引,MONGO会给数组每个元素都创建索引,导致整体索引体积迅速增大
四 查询场景
1 查询语句一定要走索引,避免全表扫描
2 数组内元素查询需要使用 $elemMatch
3 不使用MapReduce在主节点执行