mongodb按照_id的哈希分片
步骤
1、 登陆认证数据库(30000端口)
./mongo -port 30000
mongos> use admin
mongos> db.auth("root","password")
1
2、打开数据库实例分片规则
mongos> db.runCommand({"enablesharding":"dbname"})
{ "ok" : 1 }
3、检验是否打开
mongos> sh.status()
4、创建_id的hashed索引(dbname表示数据库名称,c1表示集合名称)
mongos> use dbname
switched to db dbname
mongos> db.c1.createIndex({_id:'hashed'})
{
"raw" : {
"shard1/192.168.37.21:27017,192.168.37.22:27017,192.168.37.23:27017" : {
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1,
"$gleStats" : {
"lastOpTime" : Timestamp(1565832841, 1),
"electionId" : ObjectId("5d53b4183e4917ea2d7a03f3")
}
}
},
"ok" : 1
}
5、创建_id的片键
mongos> use admin
switched to db admin
mongos> db.runCommand({"shardcollection":"dbname.c1","key":{"_id":"hashed"}})
{ "collectionsharded" : "dbname.c1", "ok" : 1 }
6、验证分片是否成功
mongos> sh.status()
好了,这就是mongodb按照_id的哈希制作分片的方法了,如有问题可与博主一起交流讨论!