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分钟以上
  • 【强制】抽数作业不允许链接主库
相关推荐
数据库小学妹2 分钟前
关系型数据库核心原理拆解:SQL解析、事务引擎、存储结构全链路分析
数据库·经验分享·sql·数据库架构·dba
海市公约4 分钟前
Redis主从复制全量同步七步时序与命令传播机制详解
数据库·redis·缓存·主从复制·高可用架构·全量同步
我是唐青枫10 分钟前
Java JdbcTemplate 实战指南:用 Spring 轻量完成数据库增删改查
java·数据库·spring
梓䈑19 分钟前
【MySQL】MySQL安装 和 配置
数据库·mysql
小马爱打代码32 分钟前
Redis 和 MySQL 双写一致性:延迟双删、读写锁、MQ、Canal 怎么选?
数据库·redis·mysql
数智顾问1 小时前
(133页PPT)数据中心基础设施规划设计(附下载方式)
大数据·数据库·人工智能
l1t1 小时前
DeepSeek总结的PostgreSQL 的开源 TDE:pg_tde
数据库·postgresql·开源
南极企鹅1 小时前
深入理解 MVCC:数据库并发控制的基石
java·数据库·mysql
欧神附体1231 小时前
MYSQL数据库集群高可用和数据监控平台项目
数据库·mysql