一、库(数据库)
-
命名规则:
- 使用数字、字母和下划线,长度最多64个字符。
- 推荐使用业务标识进行命名。
-
避免冲突:
- 不能和系统库名称重合,如admin、local、test、config。
-
大小写敏感性:
- MongoDB是大小写敏感的,推荐全部使用小写字母。
二、集合(表)
-
命名规则:
- 使用数字、字母和下划线,长度最多64个字符。
- 推荐使用业务标识进行命名。
-
集合名称限制:
- 集合名称禁止以system.开头。
-
大小写敏感性:
- 同上,推荐全部使用小写字母。
-
禁止使用_id:
- 避免向_id字段中写入自定义内容,它是MongoDB用于唯一标识文档的字段。
-
超长文本处理:
- 对于超长文本,建议采用压缩存储,以防止查询时导致网卡阻塞。
-
数据量增长策略:
- 针对表数据量增长的情况,应提前考虑采取分片措施。
-
写关注设置(Write Concern):
- 正确设置写关注级别,以确保数据的持久性和一致性。
- 要求进行写入确认。
- 可以要求数据已写入到副本集的主服务器和一个备用服务器。
- 可以要求数据已写入到副本集中的大多数服务器中(majority)。
- 正确设置写关注级别,以确保数据的持久性和一致性。
三、索引
-
联合索引原则:
- 索引遵循联合索引最左匹配原则,建立联合索引时需注意字段的顺序。
-
索引命名规范:
- 索引建立时应统一以idx_开头命名。
-
索引失效场景:
- 使用正则表达式及非操作符,如
not等,可能导致索引失效。
- 使用算术运算符,如$mod等,也可能导致索引失效。
- 使用正则表达式及非操作符,如
-
数组元素索引:
- 尽量不为数组元素创建索引,因为MongoDB会为数组的每个元素都创建索引,导致整体索引体积迅速增大。
四、查询场景
-
利用索引:
- 查询语句应尽量利用索引,以避免全表扫描,提高查询效率。
-
数组内元素查询:
- 对于数组内元素的查询,应使用$elemMatch操作符。
-
MapReduce执行位置:
- 避免在MongoDB的主节点上执行MapReduce操作,以免影响性能。
经过格式化和校验,以上规范内容清晰、条理分明,并且符合MongoDB的使用习惯和最佳实践。这些规范有助于保持数据库的整洁、高效和可维护性。
网友评论