MongoDB复合密钥分片和块与磁盘大小
在阅读了10Gen手册之后,我似乎理解了切分在以下场景中的工作原理。我将使用具有userid、lastupdatetime和数据的文档作为示例:MongoDB复合密钥分片和块与磁盘大小,mongodb,sharding,Mongodb,Sharding,在阅读了10Gen手册之后,我似乎理解了切分在以下场景中的工作原理。我将使用具有userid、lastupdatetime和数据的文档作为示例: 块包含一个有序的碎片ID列表。因此,如果我的shard id是userid,我希望chunk1包含一个id列表:user1…user999(最大64mb限制),chunk2将包含user1000…user1999。对吗 在前面的例子中,假设chunk1在shard1上,chunk2在shard2上。如果user1(在shard1上)有很多文档,而所有其
{MinValue}
到{user1,12:00:00}
,在第二组中使用{user1,12:00:01}
到{user2,04:00:00}
,在第三组中使用{user2,04:00:01}
到{MaxValue}
MinValue
和MaxValue
是比其他值小或大的特殊值。第一个块实际上不是以第一个值开始的(在您的示例中是{user1,10:00:00}
,而是以MinValue
开始的{MinValue}
到{user1,12:00:00}
,{user1,12:00:01}
到{user2,04:00}
到块2和{user2,04:00:01}
到{MaxValue}
在区块三上。MinValue
和MaxValue
是比其他值小或大的特殊值。第一个区块实际上不是以第一个值开始的(在您的示例中,{user1,10:00:00}
而是以MinValue
开始的关于2-它不能完全回答问题-因此在理论上,如果用户1将有大量文档mongo不会将其放在多个碎片上?关于2-它不能完全回答问题-因此在理论上,如果用户1将有大量文档mongo不会将其放在多个碎片上?