注:数据自备,我这里是从生产环境下MYSQL里导出的一些真实数据来做测试
#激活 数据库分片
db.runCommand( { enablesharding : "elain" } );
mongos> db.runCommand( { enablesharding : "elain" } );
{ "ok" : 1 }
mongos> show dbs
config 0.1875GB
elain 0.453125GB
test (empty)
#进入数据库,建立索引,为分片做准备
/elain/apps/mongodb/bin/mongo 10.0.0.12:30000/admin
use elain;
db.elain.ensureIndex({"client_userid":1});
查看索引:
mongos> db.elain.find({"client_userid" : 151512}).explain();
{
"cursor" : "BtreeCursor client_userid_1",
"nscanned" : 3,
"nscannedObjects" : 3,
"n" : 3,
"millis" : 0,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"client_userid" : [
[
151512,
151512
]
]
}
}
#添加分片:
use admin;
db.runCommand( { shardcollection : "elain.elain",key : {client_userid: 1} } )
mongos> db.runCommand( { shardcollection : "elain.elain",key : {client_userid: 1} } )
{ "collectionsharded" : "elain.elain", "ok" : 1 }
#查看分片状态
use elain;
db.elain.stats();
mongos> db.elain.stats();
{
"sharded" : true,
"flags" : 1,
"ns" : "elain.elain",
"count" : 507372,
"numExtents" : 10,
"size" : 84375328,
"storageSize" : 97849344,
"totalIndexSize" : 29253728,
"indexSizes" : {
"_id_" : 16474640,
"client_userid_1" : 12779088
},
"avgObjSize" : 166.29874727024747,
"nindexes" : 2,
"nchunks" : 1,
"shards" : {
"shard2" : {
"ns" : "elain.elain",
"count" : 507372,
"size" : 84375328,
"avgObjSize" : 166.29874727024747,
"storageSize" : 97849344,
"numExtents" : 10,
"nindexes" : 2,
"lastExtentSize" : 26099712,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 29253728,
"indexSizes" : {
"_id_" : 16474640,
"client_userid_1" : 12779088
},
"ok" : 1
}
},
"ok" : 1
}
mongos> db.elain.stats();
{
"sharded" : true,
"flags" : 1,
"ns" : "elain.elain",
"count" : 676496,
"numExtents" : 12,
"size" : 112500436,
"storageSize" : 129179648,
"totalIndexSize" : 47551616,
"indexSizes" : {
"_id_" : 21968912,
"client_userid_1" : 25582704
},
"avgObjSize" : 166.29874529930703,
"nindexes" : 2,
"nchunks" : 8,
"shards" : {
"shard1" : {
"ns" : "elain.elain",
"count" : 0,
"size" : 0,
"storageSize" : 8192,
"numExtents" : 1,
"nindexes" : 2,
"lastExtentSize" : 8192,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 16352,
"indexSizes" : {
"_id_" : 8176,
"client_userid_1" : 8176
},
"ok" : 1
},
"shard2" : {
"ns" : "elain.elain",
"count" : 676496,
"size" : 112500436,
"avgObjSize" : 166.29874529930703,
"storageSize" : 129171456,
"numExtents" : 11,
"nindexes" : 2,
"lastExtentSize" : 31322112,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 47535264,
"indexSizes" : {
"_id_" : 21960736,
"client_userid_1" : 25574528
},
"ok" : 1
}
},
"ok" : 1
}
分片后新写数据第二次:
mongos> db.elain.stats();
{
"sharded" : true,
"flags" : 1,
"ns" : "elain.elain",
"count" : 1189194,
"numExtents" : 23,
"size" : 194533928,
"storageSize" : 252874752,
"totalIndexSize" : 87262448,
"indexSizes" : {
"_id_" : 43692544,
"client_userid_1" : 43569904
},
"avgObjSize" : 163.58468677103988,
"nindexes" : 2,
"nchunks" : 8,
"shards" : {
"shard1" : {
"ns" : "elain.elain",
"count" : 396370,
"size" : 62195348,
"avgObjSize" : 156.91234957236924,
"storageSize" : 86114304,
"numExtents" : 11,
"nindexes" : 2,
"lastExtentSize" : 20881408,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 35949