我就像很多人正在考虑在Mongo中分割我的收藏的正确方法。主要问题是 - 自动分片如何工作?按ObjectID分片,是否正确?
官方医生说 - “MongoDB中通过自动分片(分区)架构水平缩放”和“划分一个集合,我们指定一个片键模式”。注意“为集合选择正确的分片键非常重要”:)。
http://www.mongodb.org/display/DOCS/Sharding+Introduction#ShardingIntroduction-ShardKeys
http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
现在的问题是 - “这是正确的钥匙”(分片由对象ID)?
db.runCommand({ shardcollection : "test", key : { _id : 1 }})
Mongo内部会发生什么?在这种情况下,Mongo如何将数据拆分为块?假设我最初有两个分片服务器有10毫秒的记录 - 当Mongo方面当收集到20毫升记录时我想再添加2个分片服务器时会发生什么?我无法在与Mongo有关的来源的任何地方找到这种级别的细节。
考虑到自动生成_id的帐户随机性质和它的结构,
... http://www.mongodb.org/display/DOCS/Object+IDs ...
我会通过价值分裂至少显著字节(RTL顺序)块分片2-3字节 - 这将提供容易的方式由碎片服务器2^N至碎片 - 2,4,8,...,与更多或更少甚至256台碎片服务器上每个碎片,并用最小所需配置加载。据我了解,Mongo仅支持通过明确定义的范围进行分片/分块,并且我的想法不起作用。是真的吗?
是的,我是在相积极的研究针对新项目 - 将审查我的所有问题,并在研究完成时接受最适用的问题。 – 2012-02-06 18:48:02
@XtraCoder你的研究过程如何?这个答案似乎值得接受。 – 2012-08-10 16:45:20