【问题标题】:Sharding on MongoDB what about the other collections?在 MongoDB 上进行分片,其他集合呢?
【发布时间】:2014-09-17 11:51:14
【问题描述】:

我知道“哈希分片”可以根据传递的集合的键在数据库的集合级别上完成。

这可确保该集合的记录分布在所有分片中。

我了解一个集合会发生什么。其他收藏呢?

  • 是否所有其他表的所有数据都仅存储在一个分片中?
  • 它会在所有分片中复制吗?
  • 它是否也会分裂并分布在所有分片中?

【问题讨论】:

  • 这个问题属于dba.stackexchange.com。 StackOverflow 仅用于编程相关主题,例如解决“代码”问题。其他问题可以发布到其他 stackexchange 网络站点。

标签: mongodb sharding


【解决方案1】:

除非您决定将它们也分片,否则其他集合将驻留在单个分片(称为主分片)上。主分片设置在数据库级别而不是集合,因此特定数据库中的所有非分片集合都将具有相同的主分片。您可以在 sh.status() 输出中查看任何给定数据库的主数据库,如下例所示:

mongos> sh.status()
--- Sharding Status --- 
  sharding version: {
    "_id" : 1,
    "version" : 4,
    "minCompatibleVersion" : 4,
    "currentVersion" : 5,
    "clusterId" : ObjectId("54185b2c2a2835b6e47f7984")
}
  shards:
    {  "_id" : "shard0000",  "host" : "localhost:30000" }
  databases:
    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
    {  "_id" : "shardTest",  "partitioned" : true,  "primary" : "shard0000" }
        shardTest.foo
            shard key: { "_id" : 1 }
            chunks:
                shard0000   1
            { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(1, 0) 
    {  "_id" : "bar",  "partitioned" : true,  "primary" : "shard0000" }
        bar.data
            shard key: { "_id" : 1 }
            chunks:
                shard0000   1
            { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(1, 0) 
    {  "_id" : "foo",  "partitioned" : true,  "primary" : "shard0000" }
        foo.data
            shard key: { "_id" : 1 }
            chunks:
                shard0000   9

在这个例子中,只有一个分片 (shard0000),因此它是所有数据库 ("primary" : "shard0000") 的主分片,除了 config 是一种特殊情况(并且驻留在配置服务器上)。创建数据库时选择数据库的主分片。

因此,如果您只有一个分片,先创建所有数据库,然后再添加更多分片,那么您在添加新分片之前创建的所有数据库都将其主集设置为第一个分片(没有其他选择) .在您拥有多个分片之后创建的任何数据库最终都可能以任何分片作为它们的主分片,本质上它是使用循环选择的,但每个 mongos 都会对它在循环选择中的位置有自己的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 2015-04-06
    • 2013-08-31
    • 2018-12-15
    • 1970-01-01
    • 2022-10-03
    • 2019-08-04
    相关资源
    最近更新 更多