

# DynamoDB でセカンダリインデックスを使用するためのベストプラクティス。
<a name="bp-indexes"></a>

多くの場合、セカンダリインデックスは、アプリケーションに必要なクエリパターンをサポートするために必要です。同時に、セカンダリインデックスを過度に使用するか、非効率的に使用すると、コストがかかり、不要にパフォーマンスが低下する可能性があります。

**Contents**
+ [DynamoDB のセカンダリインデックスの一般的なガイドライン](bp-indexes-general.md)
  + [インデックスを効率的に使用する](bp-indexes-general.md#bp-indexes-general-efficiency)
  + [計画を慎重に選択する](bp-indexes-general.md#bp-indexes-general-projections)
  + [フェッチを回避するための頻繁なクエリの最適化](bp-indexes-general.md#bp-indexes-general-fetches)
  + [ローカルセカンダリインデックス作成時に項目コレクションのサイズ制限に注意する](bp-indexes-general.md#bp-indexes-general-expanding-collections)
+ [スパースインデックスの利用](bp-indexes-general-sparse-indexes.md)
  + [DynamoDB のスパースインデックスの例](bp-indexes-general-sparse-indexes.md#bp-indexes-sparse-examples)
+ [DynamoDB のマテリアライズされた集計クエリでグローバルセカンダリインデックスを使用する](bp-gsi-aggregation.md)
  + [シナリオとアクセスパターンの例](bp-gsi-aggregation.md#bp-gsi-aggregation-scenario)
  + [事前計算された集計を行う理由](bp-gsi-aggregation.md#bp-gsi-aggregation-why)
  + [テーブル設計](bp-gsi-aggregation.md#bp-gsi-aggregation-table-design)
  + [Streams と AWS Lambda を使用した集約パイプライン](bp-gsi-aggregation.md#bp-gsi-aggregation-pipeline)
  + [スパース GSI 設計](bp-gsi-aggregation.md#bp-gsi-aggregation-sparse-gsi)
  + [GSI のクエリ](bp-gsi-aggregation.md#bp-gsi-aggregation-querying)
  + [考慮事項](bp-gsi-aggregation.md#bp-gsi-aggregation-considerations)
+ [DynamoDB のグローバルセカンダリインデックスの多重定義](bp-gsi-overloading.md)
+ [DynamoDB の選択テーブルクエリでグローバルセカンダリインデックス書き込みシャーディングを使用する](bp-indexes-gsi-sharding.md)
  + [パターンの設計](bp-indexes-gsi-sharding.md#bp-indexes-gsi-sharding-pattern-design)
  + [シャーディング戦略](bp-indexes-gsi-sharding.md#bp-indexes-gsi-sharding-strategy)
  + [シャーディングされた GSI のクエリ](bp-indexes-gsi-sharding.md#bp-indexes-gsi-querying-the-sharded-GSI)
  + [並列クエリの実行に関する考慮事項](bp-indexes-gsi-sharding.md#bp-indexes-gsi-parallel-query-execution-considerations)
  + [コード例](bp-indexes-gsi-sharding.md#bp-indexes-gsi-code-example)
+ [DynamoDB のグローバルセカンダリインデックスを使用して結果的に整合性のあるレプリカを作成する](bp-indexes-gsi-replica.md)