Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

mergeAllChunksOnShard

在此页面上

  • 定义
  • 语法
  • 命令字段
  • 行为
  • 例子
mergeAllChunksOnShard

mergeAllChunksOnShard 查找并合并分片为给定集合拥有的所有个可合并数据段

该命令具有以下语法:

db.adminCommand(
{
mergeAllChunksOnShard: <name of the collection>,
shard: <name of the shard>,
maxNumberOfChunksToMerge: <maximum number of chunks to merge> /* optional */
}
)

该命令接受以下字段:

字段
类型
必要性
说明
mergeAllChunksOnShard
字符串
必需
集合的名称。
shard
字符串
必需
分片的名称。
maxNumberOfChunksToMerge
整型
Optional
要合并的最大数据块数。

mergeAllChunksOnShard 查找并合并同一分片上collection的所有可合并数据块。同一collection中的两个或多个连续数据块在满足以下所有条件时是可合并的:

此示例假设所有数据段的历史记录均为空,并且所有数据段都是非巨型数据段。由于这两个条件都为 true,因此同一分片上的所有连续间隔都是可合并的。

这些数据段属于名为coll且分片键为x的集合。共有九个数据段。

数据段 ID
最小
Max
分片
A
x: 0
x: 10
分片0
B
x: 10
x: 20
分片0
C
x: 20
x: 30
分片0
D
x: 30
x: 40
分片0
Ë
x: 40
x: 50
分片 1
F
x: 50
x: 60
分片 1
x: 60
x: 70
分片0
h
x: 70
x: 80
分片0
I
x: 80
x: 90
分片 1
1
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard0" } )

此命令会合并连续的数据段序列:

  • ABCD

  • G-H

2
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard1" } )

此命令会合并连续的数据段 EF 序列。

这些命令完成后,连续的数据段就被合并了。总共有四个数据段,而不是原来的九个。

数据段 ID
最小
Max
分片
ABCD
x: 0
x: 40
分片0
EF
x: 40
x: 60
分片 1
G-H
x: 60
x: 80
分片0
I
x: 80
x: 90
分片 1
← 列出分片