当前位置: 首页 > article >正文

MongoDB Chunks核心概念与机制

1. 基础定义
  • Chunk(块)‌:MongoDB分片集群中数据的逻辑存储单元,由一组连续的片键(Shard Key)范围数据组成,默认大小为‌64MB‌(可调整范围为1-1024MB)‌。
  • 数据分布逻辑‌:分片集群通过记录Chunk与分片(Shard)的映射关系管理数据存储,而非直接跟踪每条数据的位置‌。
2. Chunk生命周期
  1. 初始状态
    新分片的集合默认生成一个覆盖全片键范围([minKey, maxKey])的Chunk,存储在‌primary shard‌上‌。

  2. 自动分裂(Splitting)

    • 触发条件‌:当Chunk大小超过chunkSize(默认64MB)时,MongoDB自动将其拆分为更小的Chunk‌。
    • 分裂规则‌:
      • 首次分裂时,若Chunk数≤3,分裂阈值为1MB;随着Chunk数量增加,阈值逐步升高至chunkSize‌3。
      • 分裂后更新元数据至‌config server‌,并在mongos缓存中同步路由信息‌。
  3. 手动分裂

         通过splitAt()splitFind()函数指定片键值强制拆分,适用于预分片(Pre-splitting)优化场景‌。

Chunk迁移与均衡

Balancer触发迁移‌:当分片间Chunk数量差异≥9时,Balancer自动迁移Chunk以实现负载均衡‌

迁移流程

  1. 从源分片复制Chunk数据到目标分片。
  2. 更新config server元数据及mongos路由缓存。
  3. 删除源分片上的旧Chunk数据‌
关键配置与管理
配置项作用示例命令/参数来源
shardCollection为集合启用分片sh.shardCollection("db.coll", {key:1})
chunkSize定义Chunk初始大小sh.setBalancerMaxChunkSize(128)
sh.disableBalancer()临时关闭Balancer以维护sh.disableBalancer("db.coll")
sh.status()查看Chunk分布及迁移状态sh.status()


http://www.kler.cn/a/572591.html

相关文章:

  • SpringCloud注册中心-eureka
  • Spring Boot 3.0核心特性解读
  • Spark 中的schema概念
  • JavaEE Servlet01
  • 纯前端使用 Azure OpenAI Realtime API 打造语音助手
  • NO1.C++语言基础|四种智能指针|内存分配情况|指针传擦和引用传参|const和static|c和c++的区别
  • 【工具变量】全国分省市县人口密度数据集-基本无缺失值(2000-2023年)
  • 设计模式:迭代器模式
  • vue中Axios的封装和API接口的管理(待根据实际项目front进行分析)
  • 文本处理Bert面试内容整理-BERT的核心架构是什么?
  • 高频 SQL 50 题(基础版)_610. 判断三角形
  • 【 商用车整车静态功耗优化探究】
  • DeepSeek 全套资料pdf合集免费下载(持续更新)
  • FPGA基础 -- Verilog常用关键字
  • C语言指针操作
  • 类型转换
  • 【音视频】ffmpeg命令分类查询
  • SpringBoot 核心原理深度解析
  • 备考六级:词汇量积累(day3)
  • 并发编程(线程池)面试题及原理