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分钟以上
  • 【强制】抽数作业不允许链接主库
相关推荐
艾利克斯冰3 分钟前
Explain 是 SQL 查询优化中非常重要的工具,它用于分析 SQL 查询的执行计划
数据库·sql·mysql
m0_674031438 分钟前
sql版本序列号
服务器·数据库·sql
爱蹦跶的精灵1 小时前
如何保证系统上线不出现bug?
数据库·功能测试·bug
三天不学习2 小时前
SQL Server 数据库迁移到 MySQL 的完整指南
android·数据库·mysql
雷神乐乐2 小时前
Redis企业开发实战(二)——点评项目之商户缓存查询
数据库·redis·缓存
洛嘚3 小时前
多数据源配置及使用,在同一个方法下切换数据源。
java·服务器·数据库
利瑞华4 小时前
Redis 深度解析 —— 高频面试题与核心知识点
数据库·redis·缓存
vip1024p4 小时前
【玩转全栈】----Django基本配置和介绍
数据库·django·sqlite
非凡的世界5 小时前
数据结构在 Web 开发中的重要性与应用
数据库·php·编程语言
GottdesKrieges5 小时前
GaussDB用户权限管理
数据库·oracle·gaussdb