0
我們需要在非常短的時間表內分割我們的生產數據庫,現在我們已經決定在散列(_id)上分片 - 但是,我們已經看到無法在這樣的索引上創建唯一約束。是否有可能確保MongoDB中分片哈希鍵的唯一性?
是否有可能以任何其他方式確保100%的時間我們永遠不會插入具有相同_id的重複文檔?
我們已經考慮添加2個索引,1個用於分片鍵(散列(_id)),另一個用作默認唯一_id索引 - 但我們不確定這是否可行/將解決我們的問題。
在此先感謝!
請閱讀http://docs.mongodb.org/manual/tutorial/enforce-unique-keys-for-sharded-collections/ _thoroughly_。 – 2014-11-24 12:16:58
tl; dr:ObjectIds是_guaranteed_是唯一的,並且哈希碰撞比連續贏得連續時間的抽籤更不可能。如果每秒散列大約60億份文件,100年後你將有50%的機會產生碰撞。幾乎所有的實際目的,這應該是足夠的。 – 2014-11-24 12:27:05
@ MarkusWMahlberg - 我意識到這一點,我問是否有解決方法。 – Ron 2014-11-24 13:47:16