1
从MongoDB的文档(http://docs.mongodb.org/manual/core/sharding-shard-key/)我读的MongoDB:碎片化系统无法执行群集范围内唯一索引
分片系统不能强制集群范围内唯一索引,除非 独特的领域是在片键。
我不太好理解。 如果我有以下唯一索引 {A,B,C,d} 和分片键 {A,B},
是{A,B,C,d}的所有推崇唯一性集群?
从MongoDB的文档(http://docs.mongodb.org/manual/core/sharding-shard-key/)我读的MongoDB:碎片化系统无法执行群集范围内唯一索引
分片系统不能强制集群范围内唯一索引,除非 独特的领域是在片键。
我不太好理解。 如果我有以下唯一索引 {A,B,C,d} 和分片键 {A,B},
是{A,B,C,d}的所有推崇唯一性集群?
由于分片密钥是唯一密钥的前缀,因此保持此唯一性。关键的洞察是每个块只存在于一个碎片上。
唯一性约束是,如果您有两个不同的文档,其中a,b,c和d全部相等,则它们不应同时存在,因为它们不是唯一的。但是由于它们对于a和b都具有相同的值,所以它们必须位于相同的块中,因此它们将位于相同的碎片上。该分片在{a:1,b:1,c:1,d:1}上确实具有唯一索引,因此它将保持这两个文档的唯一性不变,并且不允许插入第二个文档。
所以:
是{A,B,C,d}在所有集群推崇的独特性?
是的。