数据库命名规范与建议
- 集合名字不能是空的字符串“”。不能包含“\0"字符(这表示字符串的结束)。不能以”system"为前缀。
- 索引的名字长度上限为128个字符,并且不能包含 '\0' 字符。
- 数据库的名字通常建议为小写的, 一些字符,如空格、 "."、 "$"、 "/"、 "" 和 "\0" 是不被允许的。
索引设计规范建议
- 在设计索引之前,首先需要明确需要进行哪些查询操作。了解哪些查询是经常执行的、哪些查询需要快速响应以及是否有复杂的联合查询,这些信息将有助于确定索引的创建策略。
- 选择字段作为索引时,应优先考虑经常被查询的字段,以及在查询中用作条件的字段。同时,注意避免在大型数据集上创建过多的索引。
- 复合索引中字段的顺序对查询性能有影响。通常,将最常用于筛选条件的字段放在索引的前面,这样可以更快的缩小查询范围。
- 请不要创建不会被使用到的索引,因为文档数据库会加载索引到内存,无用索引加载到内存会浪费内存空间因业务逻辑变化而产生的无用索引也要及时清理。
- 如果一个字段经常会被更新,那么最好不要对这个字段建立索引。因为每次更新都会引起索引的更新,这会消耗大量的CPU和磁盘IO。
- 避免全文索引的过度使用,并不是所有情况下都适合使用全文索引。全文索引适用于对文本字段进行复杂的文本搜索,但其创建和维护成本较高。在不必要的情况下避免过度使用全文索引。
分片集群的设计规范建议
- 合理设计分片键,防止出现大量的数据使用相同的分片键,导致出现jumbo chunk。
- 定期检查你的分片,以确保数据分布的均匀。sh.status()命令来查看分片的状态。