

# DynamoDB の読み取り整合性
<a name="HowItWorks.ReadConsistency"></a>

Amazon DynamoDB は、テーブル、ローカルセカンダリインデックス (LSI)、グローバルセカンダリインデックス (GSI)、およびストリームからデータを読み取ります。詳細については、「[Amazon DynamoDB のコアコンポーネント](HowItWorks.CoreComponents.md)」を参照してください。テーブルと LSI のどちらにも、*結果整合性のある*読み込み (デフォルト) と*強力な整合性のある*読み込みという 2 つの読み込み整合性オプションが用意されています。GSI とストリームからのすべての読み取りは、結果整合性のある読み込みです。

 アプリケーションが DynamoDB テーブルにデータを書き込み、HTTP 200 応答 (OK) を受信した場合、これは書き込みが正常に完了し、永続的に保持されたことを意味します。DynamoDB は、*コミット済み読み取り*分離を提供し、読み取りオペレーションが常に項目のコミット済みの値を返すようにします。読み取りでは、最終的に成功しなかった書き込みの項目に対してビューが表示されることはありません。コミット済み読み取り分離では、読み取りオペレーションの直後に項目の変更が防止されません。

## 結果整合性のある読み込み
<a name="HowItWorks.ReadConsistency.Eventual"></a>

結果整合性のある読み込みは、すべての読み取りオペレーションのデフォルトの読み込み整合性モデルです。DynamoDB テーブルまたはインデックスに対して結果整合性のある読み込みを発行すると、最近完了した書き込みオペレーションの結果が応答に反映されない場合があります。少し時間が経ってから読み取りリクエストを繰り返すと、最終的に、より最新の項目が応答で返されるはずです。結果整合性のある読み込みは、テーブル、ローカルセカンダリインデックス、およびグローバルセカンダリインデックスでサポートされています。また、DynamoDB ストリームからのすべての読み取りも、結果整合性のある読み込みであることに注意してください。

 結果整合性のある読み込みは、強力な整合性のある読み込みの半分のコストで済みます。詳細については、「[Amazon DynamoDB 料金](https://aws.amazon.com/dynamodb/pricing/)」を参照してください。

## 強力な整合性のある読み込み
<a name="HowItWorks.ReadConsistency.Strongly"></a>

読み取りオペレーション (`GetItem`、`Query`、`Scan` など) には、オプションの `ConsistentRead` パラメータがあります。`ConsistentRead` を true に設定すると、DynamoDB は、成功した以前のすべての書き込みオペレーションからの更新を反映した、最新データを含む応答を返します。強力な整合性のある読み込みは、テーブルとセカンダリインデックスでのみサポートされています。グローバルセカンダリインデックスまたは DynamoDB ストリームからの強力な整合性のある読み込みはサポートされていません。

## グローバルテーブルの読み込み整合性
<a name="HowItWorks.ReadConsistency.Global"></a>

DynamoDB は、マルチアクティブおよびマルチリージョンのレプリケーション用の[グローバルテーブル](GlobalTables.md)もサポートしています。グローバルテーブルは、異なる AWS リージョン間の複数のレプリカテーブルで構成されています。レプリカテーブル内の任意の項目に加えられた変更は、通常は 1 秒以内に同じグローバルテーブル内の他のすべてのレプリカにレプリケートされ、結果的に整合します。詳細については、「[整合性モード](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes)」を参照してください。