我想知道為 Amazon DynamoDB 資料表選擇主索引鍵時的考量事項。
簡短描述
DynamoDB 中有兩種類型的主索引鍵:
- **分區索引鍵:**這是一種簡單的主索引鍵。如果資料表中只有一個分區索引鍵,則不可能存在兩個具有相同分區索引鍵值的項目。
- **複合主鍵:**這是分區索引鍵和排序索引鍵的組合。如果資料表中有一個複合主鍵,則兩個項目可能具有相同的分區索引鍵值。不過,這些項目必須有不同的排序索引鍵值。
不論選擇哪種類型的主索引鍵,主索引鍵對於資料表中的每個項目都必須是唯一的。未選擇適當的主索引鍵可能會導致資料分佈不均和熱鍵,從而造成限流 (ProvisionedThroughputExceededException)。
解決方法
選擇主索引鍵時,請使用下列一個或多個策略:
- **使用高基數屬性:**分區索引鍵必須是一個對每個項目而言具有唯一值的屬性,例如使用者 ID、電子郵件或電話號碼。
- **使用複合屬性:**組合多個屬性以形成主索引鍵。例如,您可能有一個「訂單」資料表,結合了分區索引鍵的客戶 ID、產品 ID 和國家/地區代碼,然後使用訂單日期作為排序索引鍵。這會增加每個項目具有唯一主索引鍵的可能性。
- **將隨機數字新增到分區索引鍵中:**對於密集寫入的使用案例,請考慮將預定範圍中的隨機數字新增到分區索引鍵中。這會增加分區索引鍵的隨機性。如需詳細資訊,請參閱使用寫入碎片以平均分配工作負載。
如需有關這些策略的詳細資訊,請參閱選擇正確的 DynamoDB 分區索引鍵。
相關資訊
有效設計和使用分區索引鍵的最佳實務
為什麼我的 Amazon DynamoDB 資料表被限流?