MongoDb:发出命令以启用已启用分片的集合的分片是否有害?

时间:2012-10-16 12:06:01

标签: mongodb sharding

我们的一个项目是使用MongoDb和我们的数据库=>集合是分片的。顺便说一下,我们的集合是动态创建的,因此我们必须在用PHP编写的Application层中编写代码,以通知MongoDb对集合进行分片。因此,我正在寻找两个选择:

  1. 有没有办法确定该集合是否通过PHP共享? [或]
  2. 告诉MongoDb对分片的集合进行分片是否有任何问题?

2 个答案:

答案 0 :(得分:1)

1]你可以通过操纵db.printShardingStatus()给出的字符串输出来识别集合是否被分片 检查this以了解如何打印MongoDB的输出

2]要求MongoDB分片已经分片的集合没问题。 如果已经分片,Mongo将永远不会将“ok”设置为1。 db.runCommand({ enablesharding : "sharded_db_name" })
{ "ok" : 0, "errmsg" : "already enabled" }

答案 1 :(得分:0)

1.我不完全确定这一点,因为我没有使用PHP驱动程序,但是,当一个人运行sh.status()时,可以看到分片集合是什么。例如,下面我在“twitter”数据库中对“tweets”集合进行了分片 -

 databases:
    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
    {  "_id" : "twitter",  "partitioned" : true,  "primary" : "shard0000" }
        twitter.tweets chunks:
                shard0001   11
                shard0002   11
                shard0000   12

还有进一步的分片文档here

PHP驱动程序文档为here

2.你不能对分片收集进行分片,不能确定为什么需要......它没有意义。

相关问题