首页 > 数据库 >mongodb 分片键的特点及分片原则

mongodb 分片键的特点及分片原则

时间:2022-11-06 20:15:52浏览次数:35  
标签:原则 mongodb 查询 分片 片键 id 邮件

mongodb 分片键的特点,选择条件及分片原则

1、集群cluster:包含多个分片
分片shard:包含多个chunk
块chunk:包含多个文档
文档doc:包含shard key 的一行数据
片键shard key:文档中的一个字段

复制集

分片demo:

2._id 自增作为片键的特点,邮件业务:
块的基数大小:要非常大,避免一个chunk太大
写分布:_id 片键自增,连续写到chunk1,chunk2,导致chunk1,chunk2过大,副本移动数据慢
定向查询:一般不用邮件id来查邮件


3._id hashed作为片键的特点,邮件业务:
块的基数大小:id hashed 后也足够大,随机均衡分布在不同的分片上
写分布:_id 随机均衡分布在不同的分片上
定向查询:一般不用邮件id来查邮件,所以每次查询都要到所有节点查询数据,比较慢


4._userid作为片键的特点,邮件业务:
块的基数大小:太小,一个用户的邮件都写到一个块里,时间久了,一个块的数据非常大,不好移动
写分布:_id 随机均衡分布在不同的分片上
定向查询:一般不用邮件id来查邮件,所以每次查询都要到所有节点查询数据,比较慢

组合片键:

5. {userid:1,time:1}作为组合片键的特点,邮件业务:
块的基数大小:基数足够大
写分布:能分布写到不同的块分片上
定向查询:一般会用userid来查数据,能很好的定位到分片上查询数据,不用查询所有的分片;


综合总结:组合片键来给mongodb分片比较好,能满足基数比较大,写分布也可以写到不同的分片上,也可以根据业务常用的使用情景查询部分节点就可以查到数据,不用查询所有节点提高查询速度。

 

mongodb 块的原因:

刷盘机制,缓存机制100秒,日志文件,刷盘时间60秒后刷到磁盘

写比较多没有查询,可以修改缓存100秒的时间,修改大,这样提高写的速度,多次提交,减少刷盘此时,每次刷盘的数据量会增大

 

标签:原则,mongodb,查询,分片,片键,id,邮件
From: https://www.cnblogs.com/csj007523/p/16863600.html

相关文章

  • SOLID原则介绍和具体使用
    SOLID原则介绍和具体使用介绍SOLID是五大面向对象设计原则的缩写。单一职责原则(SRP)开放封闭原则(OCP)里氏替换原则(LSP)接口隔离原则(ISP)依赖倒置原则(DIP)初始代码初......
  • MongoDB复制集设置复制延迟节点
    将延迟成员的vote设置为0,并将延迟成员隐藏,可以提升性能。延迟节点需要满足的条件:·优先级为0,这样就不会变成主节点。·是隐藏的,应用不应该查询隐藏节点·Oplog窗口能力必......
  • 代码规范和编码原则
    (一)代码规范1.代码风格规范,主要是文字上的规定;2.代码设计规范,牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。(二)代码风格规范代码风格的原则是:简明......
  • MongoDB基础之文档DML操作
    目录1文档DML1.1定义1.2插入文档1.3更新文档1.3.1update()方法1.3.2save()方法1.3.3原子操作命令1.3.4位置操作符1.3.4.1位置操作符$1.3.4.2位置操作符$[]1.3.......
  • MongoDB基础之查询文档操作
    目录1查询操作1.1定义1.2查询操作1.2.1pretty1.2.2MongoDB与RDBMSWhere语句比较1.2.3MongoDBANDOR条件1.2.3.1AND条件1.2.3.2OR条件1.2.3.3AND和OR联合......
  • MongoDB基础之分组聚合函数讲解
    目录1分组聚合1.1概念定义1.2聚合操作1.2.1$match筛选1.2.2$project映射1.2.2.1自定义字段1.2.2.2起别名1.2.2.3引用原字段:$字段名1.2.2.4使用算术表达式1.2.2.5......
  • MongoDB基础之索引分析
    目录1索引1.1定义1.2创建索引1.3查看删除索引1.4查询分析1.4.1索引分析explain1.4.2强制使用索引hint1.5嵌套索引1.5.1索引数组字段1.5.2索引子文档字段1.6全......
  • UML建模语言、设计原则、设计模式
    1、UML统一建模语言定义:用于软件系统设计与分析的语言工具目的:帮助开发人员更好的梳理逻辑、思路学习地址:UML概述_w3cschool官网:https://www.omg.org/spec/UML1.1......
  • mongodb 导出操作
    我的是备份数据库,链接到数据库服务器来备份的终端shell命令实现远程连接服务器:mongo-host10.202.***.**-port27017--authenticationDatabasexz**导出远程服......
  • 设计原则之【开闭原则】
    文章目录​​什么是开闭原则​​​​简单实例​​​​实战实例​​​​如何理解“对修改关闭”?修改代码就一定违背开闭原则吗​​​​参考资料​​什么是开闭原则开闭原则的......