インデックス (Indexes)

セカンダリインデックスは、同じデータに対する 2 つ目のアクセスパターン、つまり別のパーティションキーとソートキーを与えてくれます。SQL から来た人が陥る罠は、GSI を気軽に追加できる B-tree インデックスのように扱うことです。そうではありません。GSI は独自のキー、独自のコスト、独自の整合性ルールを持つ、データの複製コピーです。

このセクションでは、正しいインデックスの種類を選ぶこと、インデックスを安く保つこと、そして本番で噛みついてくる落とし穴 — 古い読み取りや、テーブルではなくインデックスに起因する書き込みのスロットリング — を扱います。

7 件中 0 件読了クイズ
DynamoDB の GSI と LSI
DynamoDB の GSI と LSI — パーティションキー、整合性、キャパシティ、10 GB の違い、そしてどちらのセカンダリインデックスを選ぶべきかのシンプルなルール。
初級読了 3 分
DynamoDB のインデックスプロジェクション:KEYS_ONLY、INCLUDE、ALL
DynamoDB のインデックスプロジェクション — KEYS_ONLY、INCLUDE、ALL — それぞれが GSI/LSI に何をコピーするか、ストレージと書き込みコストのトレードオフ、そして欠けた属性がベーステーブルからの取得を強いる理由。
中級読了 5 分
DynamoDB のスパースインデックス
DynamoDB のスパースインデックスは、そのキーを持つアイテムだけをグローバルセカンダリインデックスに保持させます — 大きなテーブルの小さなサブセットをクエリする最も安価な方法。
中級読了 7 分
DynamoDB のキーオーバーロード
DynamoDB のキーオーバーロード — 多数のエンティティ型を汎用的な PK/SK 名の下に保存し、型をキーの値にエンコードして、すべてのアクセスパターンを1つのテーブルで提供する。
上級読了 6 分
DynamoDB の GSI が結果整合性である理由
DynamoDB の GSI が結果整合性である理由 — 書き込み直後の読み取りで古い結果が返る落とし穴、その裏にある伝播の仕組み、そしてそれを前提に設計する方法。
中級読了 7 分
DynamoDB で GSI がベーステーブルの書き込みをスロットリングする理由
プロビジョニング不足の DynamoDB GSI が、なぜベーステーブルの書き込みをスロットリングするのか — GSI のバックプレッシャー、ホットなインデックスパーティション、注意すべき例外、そして修正方法。
上級読了 6 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

GSI と LSI から始めてください。残りは違いを知っている前提です。

DynoTable を試すと、インデックスを直接確認して Query できます。