我想確定在mongo數據庫中處理複合主鍵的最佳方法。與該系統中的數據交互的主鍵由2個uuid組成。 uuids的組合保證是獨一無二的,但個人uuids都不是。MongoDB和複合主鍵
我看到一對夫婦的管理此的方法:
使用對象對於被向上的2個值(所建議here)
使用標準自動取得的主鍵生成的mongo對象ID作爲主鍵,將我的密鑰存儲在兩個單獨的字段中,然後在這兩個字段上創建組合索引
使主鍵成爲2個字母的散列
是我目前不知道
什麼是這些方法的性能影響其他一些真棒的解決方案?
對於選項1,我擔心插入性能會影響非順序鍵。我知道這可以殺死傳統的RDBMS系統,我也看到了在MongoDB中這也可能是真的。
對於選項2,有一個永遠不會被系統使用的主鍵似乎有點奇怪。此外,似乎查詢性能可能不如選項1中的那麼好。在傳統RDBMS中,聚簇索引提供最佳查詢結果。這在MongoDB中有多相關?
對於選項3,這將創建一個單一的ID字段,但它也不會在插入時連續。這種方法有沒有其他優點/缺點?
對於選項4,那麼...什麼是選項4?
此外,還有一些討論可能會在未來某個時候使用CouchDB而不是MongoDB。使用CouchDB會提出一個不同的解決方案嗎?
更多信息:有關該問題的一些背景,可以發現here
可能最重要的問題是你將如何訪問這些數據?寫明顯插入 - 更新?關於查詢呢?刪除有史以來? –
晴寫道。然後更新(大部分以大爆發)。相當數量的插入(再次,大部分是大爆發)。偶爾刪除。 – herbrandson
更新將使用哪些字段?一個或兩個uuids? –