本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 會從資料表、本機次要索引 (LSIs)、全域次要索引 (GSIs) 和串流讀取資料。如需詳細資訊,請參閱Amazon DynamoDB 的核心元件。兩個資料表和 都LSIs提供兩個讀取一致性選項:最終一致 (預設) 和強烈一致讀取。來自 GSIs和 串流的所有讀取最終都一致。
當您的應用程式將資料寫入 DynamoDB 資料表並收到 HTTP 200 回應 (OK) 時,表示寫入已成功完成且持久存在。DynamoDB 提供專供讀取隔離,可確保讀取操作一律傳回某個項目已確認的值。讀取將永遠不會從最終沒有成功的寫入中呈現對項目的視圖。專供讀取隔離不會防止在讀取操作後立即修改項目。
最終一致讀取
最終一致是所有讀取操作的預設讀取一致性模式。當向 DynamoDB 資料表或索引發出最終一致讀取時,回應可能無法反映出最近完成的寫入操作結果。如果您在短時間後重複讀取請求,應該最終會傳回最近的資料作為回應。最終一致讀取支援資料表、本機次要索引和全域次要索引。另外請注意,從 DynamoDB 串流的讀取也是最終一致讀取。
最終一致讀取的成本是高度一致性讀取的一半。如需詳細資訊,請參閱 Amazon DynamoDB
強烈一致的讀取
讀取操作如 GetItem
、Query
與 Scan
提供 ConsistentRead
參數。如果您ConsistentRead
將 設為 true,DynamoDB 會傳回包含最多 up-to-date資料的回應,以反映先前成功寫入操作的更新。高度一致性讀取僅支援資料表和本機次要索引。全域次要索引或 DynamoDB 串流不支援高度一致性讀取。
全域資料表讀取一致性
DynamoDB 也支援用於多重作用中和多區域複寫的全域資料表。全域資料表由不同 AWS 區域中的多個複本資料表組成。對任何複本資料表中任何項目所做的任何變更,都會複寫到相同全域資料表中的所有其他複本,通常一秒內即可完成,並且是最終一致。如需詳細資訊,請參閱一致性和衝突解決。