MongoDB开发规范

分级 名称 定义
P0 核心系统 需7*24不间断运行,一旦发生不可用,会直接影响核心业务的连续性,或影响公司名誉、品牌、集团战略、营销计划等,可能会造成P0-P2级事故发生。
P1 次核心系统 这些系统降级或不可用,会间接影响用户使用核心功能及用户体验,但不会影响相关业务的连续性。
P2 业务支撑系统 一旦发生不可用只影响该基础服务自身功能,不影响0级和1级系统相关业务的连续性。
P3 一般系统 一旦发生不可用只影响该系统自身功能,不会产生业务影响。

MongoDB是一个基于分布式文件存储的数据库。由C 语言编写。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

适合场景

注:P2及以下业务级别才能接入MongoDB

1、日志实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

2、高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。

3, 监控数据的存储。

1、库(database)

  • 【强制】数据库名最多为64字符,库名全部小写,禁止使用除_以外的任何特殊字符。 如 #aaa
  • 【强制】禁止使用数字开头和结尾的库名,如:111_aaa aaa_111
  • 【强制】禁止使用系统保留关键字作为数据库名称,如: admin,local,config,test,monitor,user,database,databases,system,find,update,remove,delete,inser等

2、集合(conllection)

  • 【强制】集合名称最多为64字符,集合名称全部小写,禁止使用除_以外的任何特殊字符。 如 #aaa
  • 【强制】禁止使用数字开头和结尾集合名称,如:111_aaa aaa_111
  • 【强制】禁止systyem开头,禁止使用系统保留关键字作为数据库名称,如:test,system,user,db,rs,admin,local,config等
  • 【强制】禁止所有业务数据只存放在一个集合中,尽量根据业务用途建立多个集合
  • 【建议】行数不要超过5000w,容量大小不要超过50G

3、文档(document)

  • 【强制】文档中的key禁止使用除_以外的任何特殊字符
  • 【强制】key必须全部小写
  • 【强制】key禁止使用数字开头和结尾
  • 【强制】禁止自定义_id的值
  • 【建议】key多个单词尽量以下划线分隔
  • 【建议】作为查询筛选字段的值不超过1KB, 整行建议不唱歌1MB(整行最大值为16MB)
  • 【建议】单库文档数量不允许超过3000
    -【 建议】固定集合:(单位为字节,不可修改大小及人为删除数据) db.createCollection("table_name",{capped:true,size:xxxx 单位字节});

4、索引(index)

  • 【强制】索引名称长度不要超过128字符
  • 【强制】创建索引必须加后台标识 db.xxxxx.createIndex({a:1,b:1},{background:true})
  • 【强制】禁止在数组字段上创建索引,如禁止在字段{testxxx:a,b,c}上添加索引{testxxx:1}
  • 【建议】联合索引字段顺序,从左到右遵从唯一性从高到低
  • 【建议】唯一性过低的列不建议创建索引(作为筛选条件重复率超过25%)
  • 【建议】TTL索引不允许超过10个

5、数据操作(find/update/remove/insert)

  • 【强制】100行数据的集合查询必须使用索引
  • 【强制】游标必须显示关闭
  • 【建议】大量数据:单次操作数据量小于5w,不允许超过50w

6、读写分离

  • 【强制】从库不允许读取实时数据,可接受从库延迟30分钟以上
  • 【强制】抽数作业不允许链接主库
相关推荐
踏月的造梦星球14 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
Database_Cool_14 小时前
企业级多模态分析计算引擎选型:首选 AnalyticDB MySQL 向量 + SQL + 实时一体化方案
数据库·sql·mysql
SelectDB14 小时前
从 Oracle、Hadoop 到 Apache Doris:哥瑞利泛半导体智能制造数据平台实践
数据库
ihuyigui14 小时前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
海棠Flower未眠14 小时前
SpringBoot 消息死信队列(荣耀典藏版)
java·数据库·spring boot
Y38153266214 小时前
SERP API + Redis 缓存层:4 种方案对比与选型
数据库·redis·缓存
用户77833661321115 小时前
serpbase + GraphQL wrapper 实战:让 SERP 数据走 GraphQL schema
数据库·api
数字新视界15 小时前
信创动环监控品牌的技术架构及应用解析
数据库·物联网·需求分析·机房管理·动环监控
洵有兮16 小时前
sql注入通关笔记
数据库·笔记·sql·sql注入
海兰16 小时前
【高速缓存】RedisVL 高级查询(全文搜索、混合搜索和 多向量搜索)
数据库·人工智能·redis·缓存