zoukankan      html  css  js  c++  java
  • MongoDB 规范

    库命名规范

    1.不能为空字符串“”

    2.不能以$开头

    3.不能包含 .  和 ^

    4.数据库大小写敏感

    5.库名最长64个字符

    6.不能与系统库相同

    最佳:库名包含小写英文加下划线

    集合名规范

    1.不能为空字符串“”

    2.不能以system.系统集合名开头

    3.不包含特殊符号~!@#¥%

    最佳:下划线和小写英文

    bson单个文档大小及嵌套

    1.单个文档不超过16MB

    2.嵌套不超过100层

    最佳:嵌套不超过3层(高并发),单个文档过大,图片等存放GridFS

    索引限制

    1.单个集合最多包含64个索引

    2.单个索引记录不超过1024 bytes (failIndexKeyTooLong=true)

    3.多列索引个数不超过31

    4.前台模式创建索引内存限制500M (maxIndexBuildMemoryUsageMegabytes)

    5.不允许创建多列数组的组合索引

    6.TTL索引如果是复合索引,过期将失效

    7.hash索引只支持单列

    最佳:使用backgroup模式批量创建索引,多列索引不超过5个字段,单个集合索引不超过5,避免对数组创建索引

    副本集限制

    1.副本集最多50个节点

    2.副本集最多7个投票节点   (提交选举效率,减少心跳网络代价)

    分布式集群限制

    1.分片key最大长度不能超过512 bytes

    2.分片key索引类型不能是text,数组和geo

    3.分片集合单个文档的条件操作必须带分片key或_id

    4.分片key及其值不允许修改

    5.分片集合不允许创建普通(不含分片key前缀)唯一性索引

    多文档事务限制

    1.不支持系统库里的集合

    2.事务不支持元数据操作的修改(如drop)

    3.非增删改查如创建用户不支持事务

    4.事务执行周期默认最长60s超过自动崩溃

       最佳:transactionLifetimeLimitSeconds控制超时时间,不建议改大

    5.默认事务申请锁等待5ms

    其他限制

    1.全集合扫描排序的内存限制32M   (添加索引,控制排序数据量)

    2.Aggregation管道操作的内存限制100M   (控制计算数据量,调整allowDiskUse允许磁盘排序)

    3.bulkWrite操作每批最大操作限制1k-100k(>=3.6)   (每次批量控制1k-5k,bulWrite有序操作false,避免复制延迟每批适当sleep)

    其他建议

    1.查询,更新,删除必须带条件,条件有索引

    2.update 必须带$set,否则重置文档

    3.find和aggregate按需字段返回

    4.数组元素添加尽量使用$push并避免对中间元素更新

  • 相关阅读:
    日期帮助类
    校验帮助类
    缓存帮助类
    数据转换帮助类
    枚举帮助类
    sql 不常用的知识点记录
    反射实例化不同类型的实例
    xml读取
    读取字段别名
    动态类型赋值处理
  • 原文地址:https://www.cnblogs.com/emmm233/p/10857016.html
Copyright © 2011-2022 走看看