2
我最近正在研究Amazon提供的新NoSQL服務,更具體地說是DynamoDB。DynamoDB:如何使用散列鍵?
亞馬遜說你應該避免使用不均勻分佈的密鑰作爲主鍵,即主鍵應該是越獨特越好。我可以看到這是每個項目都有唯一的主鍵是最好的情況嗎?如何有一些項目與重複的鍵?
我想知道底層機制是如何工作的,所以我知道它有多糟。
我最近正在研究Amazon提供的新NoSQL服務,更具體地說是DynamoDB。DynamoDB:如何使用散列鍵?
亞馬遜說你應該避免使用不均勻分佈的密鑰作爲主鍵,即主鍵應該是越獨特越好。我可以看到這是每個項目都有唯一的主鍵是最好的情況嗎?如何有一些項目與重複的鍵?
我想知道底層機制是如何工作的,所以我知道它有多糟。
表根據散列鍵在多臺機器上進行分區,所以隨機越好越好。在我的應用程序中,我使用company_id作爲散列,然後使用唯一的範圍ID,這樣我的表格可以合理地均勻分佈。
他們試圖避免的是,您對大部分數據使用相同的散列鍵,隨機性越強,Dynamo就越容易讓您的數據快速返回給您。
感謝您的答覆,但如果我使用一些單調遞增的整數作爲關鍵字而不是完全隨機的值呢? –
完美的作品。我通常使用隨機生成的UUID,而不是僅僅爲了更容易實現而增加計數。 – greg
散列也可以用來將事物邏輯分組在一起以加速查詢。 –