Closed5
DynamoDBのパーティションキーは内部的にhash関数で分散されるとのこと

Reference:
DynamoDB のパーティションとデータ分散
Amazon DynamoDB のコアコンポーネント
DynamoDB アーキテクチャ

ざっくりイメージ
- DynamoDBがパーティションキーの値をもとに裏側で自動的に保存場所を振り分けてる。
- スケーラビリティ担保する分散型DBのため、データを複数のパーティションに分けて管理してる。
- 要するに表ではテーブルのkeyの項目として見えてるが、裏では何百、何千もの物理ノード(ストレージの塊的な)にデータをばらけさせてる。

🔑 パーティションキーの役割
上記踏まえておそらくこんな感じだろうというイメージ
パーティションキー: "user-123"
→ DynamoDB が内部でハッシュ関数に通す
hash("user-123") = 918382729
→ その数値によって 200個ある物理パーティションのうち、例えば #137 に保存される
こうすることで、特定のキーに偏りがなければ、全体的にデータがうまく分散されて高スループットが保たれるということなのかと。

⚠️ 注意:「分散される = 速い」じゃない
分散の仕組み自体はDynamoDBが自動でやってくれるけど、パーティションキーの値に偏りがあると、そのキーばかりが特定の物理パーティションに集中する。
これが「ホットパーティション」と呼ばれる現象で読み書き制限に引っかかってパフォーマンス劣化の原因になる。

✅ 対策:うまく分散するキーを選ぶ
- ランダム性のある値(UUIDなど)
- ユーザーごとのID(アクセスが分散される)
- 一部で時間やカウンタを埋め込む(例:UserID#20250419)
このスクラップは5ヶ月前にクローズされました