MongoDB设计命名规范方案.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
范文 范例 指导 学习 MongoDB 设计命名规范 1. 库 1. 库名全部小写,禁止使用任 `_`以外的特殊字符,禁止使用数字打头的库名, 如:`123_abc`; 2. 库以文件夹的形式存在,使用特殊字符或其它不规范的命名方式会导致命名混 乱; 64 3. 数据库名最多为 字符; 4. 在创建新的库前应尽量评估该库的体积、QPS 等,提前与DBA 讨论是应该新建 一个库还是专门为该库创建一个新的集群; 某开发在拿到DBA 提供的MongoDB 后由于MongoDB 的权限控制比较宽松,导 致该业务的开发在创建集合的时候懒得与DBA 讨论,而是随意的将所有集合都 创建在一个库中,最初并没有什么问题,因为业务的请求量并不大。半年后,该业 务增长到了一个比较大的量级,而此时开发人员上线了一个新的项目,该项目的 写入量很大,大部分都为批量更新,由于所有集合都存放在一个库中,这个新项 目的批量更新带来了频繁的锁、I/O 平均等。最后开发配合DBA 一起将该库拆 散到了多个新的库中,将一库N 集合转换为单库单集合,性能问题迎刃而解。 2. 集合 1. 集合名全部小写,禁止使用任 `_`以外的特殊字符,禁止使用数字打头的集合 名,如:`123_abc`,禁止system 打头; system是系统集合前缀; 64 2. 集合名称最多为 字符; 3. 一个库中写入较大的集合会影响其它集合的读写性能,如果业务比较繁华的集 DB 80 I/O 合在一个 中,建议最多 个集合,同时也要考虑磁盘 的性能; 4. 如果评估单集合数据量较大,可以将一个大表拆分为多个小表,然后将每一个 小表存放在独立的库中或者sharding 分表; 5. MongoDB 的集合拥有“自动清理过期数据”的功能,只需在该集合中文档的时 间字段增加一个TTL 索引即可实现该功能,但需要注意的是该字段的类型则必 须是mongoDate(),一定要结合实际业务设计是否需要; Capped 6. 设计轮询集合 集合是否设计为 限制集,一定要结合实际业务设计是 否需要; 7. 创建集合规则 不同的业务场景是可以配置进行不同的配置; a. 如果是读多写少的表在创建时我们可以尽量将 page size 设置的比较 小 ,比如 16KB,如果表数据量不太大( internal_page_max=16KB,leaf_page_max=16KB, leaf_value_max=8KB,os_cache_max=1GB b. 如果这个读多写少的表数据量比较大,可以为其设置一个压缩算法,例如: block_compressor=zlib, internal_page_max=16KB, leaf_page_max=16KB,leaf_value_max=8KB c. 注意:该zlib压缩算法不要使用,对cpu 消耗特别大,如果使用snapp 消耗20% cpu,而且使用zlib 能消耗90%cpu,甚至100% d. 如果是写多读少的表,可以将 leaf_page_max 设置到 1MB,并开启压 缩算法,也可以为其制定操作系统层面 page cache 大小的 word版本整理分享

文档评论(0)

guocuilv2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档