
分片管理
|
299
> use <dbName>
> db.runCommand({"dataSize" : "<dbName.collName>",
... "keyPattern" : {"date" : 1}, // 片键
... "min" : chunks[0].min,
... "max" : chunks[0].max})
{
"size" : 33567917,
"numObjects" : 108942,
"millis" : 634,
"ok" : 1,
"operationTime" : Timestamp(1541455552, 10),
"$clusterTime" : {
"clusterTime" : Timestamp(1541455552, 10),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
但是要小心,
dataSize
命令必须扫描整个块的数据来确定它的大小。因此,如果可以,最
好利用对数据的了解来缩小搜索的范围:是否在某个日期创建了大量数据块?如果
7
月
1
日那天非常忙碌,那么可以在片键范围内寻找这一天的块。
如果使用了
GridFS
并在
"files_id"
字段上进行了分片,那么可以通过
fs.files
集合来查看文件的大小。
1.
分发超大块
要修复因超大块而引起的集群不均衡,就必须将超大块均匀地分配到各个分片中。 ...