网站设计师和ui设计师,织梦珠宝网站模板,免费网站建设软件有哪些,品牌策划咨询1. 基础定义
Chunk#xff08;块#xff09;#xff1a;MongoDB分片集群中数据的逻辑存储单元#xff0c;由一组连续的片键#xff08;Shard Key#xff09;范围数据组成#xff0c;默认大小为64MB#xff08;可调整范围为1-1024MB#xff09;。数据分…1. 基础定义
Chunk块MongoDB分片集群中数据的逻辑存储单元由一组连续的片键Shard Key范围数据组成默认大小为64MB可调整范围为1-1024MB。数据分布逻辑分片集群通过记录Chunk与分片Shard的映射关系管理数据存储而非直接跟踪每条数据的位置。
2. Chunk生命周期 初始状态 新分片的集合默认生成一个覆盖全片键范围[minKey, maxKey]的Chunk存储在primary shard上。 自动分裂Splitting 触发条件当Chunk大小超过chunkSize默认64MB时MongoDB自动将其拆分为更小的Chunk。分裂规则 首次分裂时若Chunk数≤3分裂阈值为1MB随着Chunk数量增加阈值逐步升高至chunkSize3。分裂后更新元数据至config server并在mongos缓存中同步路由信息。 手动分裂 通过splitAt()或splitFind()函数指定片键值强制拆分适用于预分片Pre-splitting优化场景。
Chunk迁移与均衡
Balancer触发迁移当分片间Chunk数量差异≥9时Balancer自动迁移Chunk以实现负载均衡
迁移流程 从源分片复制Chunk数据到目标分片。更新config server元数据及mongos路由缓存。删除源分片上的旧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()