分级 | 名称 | 定义 |
---|---|---|
P0 | 核心系统 | 需7*24不间断运行,一旦发生不可用,会直接影响核心业务的连续性,或影响公司名誉、品牌、集团战略、营销计划等,可能会造成P0-P2级事故发生。 |
P1 | 次核心系统 | 这些系统降级或不可用,会间接影响用户使用核心功能及用户体验,但不会影响相关业务的连续性。 |
P2 | 业务支撑系统 | 一旦发生不可用只影响该基础服务自身功能,不影响0级和1级系统相关业务的连续性。 |
P3 | 一般系统 | 一旦发生不可用只影响该系统自身功能,不会产生业务影响。 |
MongoDB是一个基于分布式文件存储的数据库。由C 语言编写。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
![](https://i-blog.csdnimg.cn/direct/a7b79c1960e24138afd6a2380f7a9ff2.png)
适合场景
注: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分钟以上
- 【强制】抽数作业不允许链接主库