

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 DynamoDB 的存留時間 (TTL) 功能
<a name="TTL"></a>

DynamoDB 的存留時間 (TTL) 功能是一種具成本效益的方法，可用於刪除不再需要的項目。TTL 可讓您為每個項目定義過期時間戳記，以標示該項目何時不再需要。DynamoDB 會在項目過期後的幾天內自動刪除它們，且不會耗用寫入輸送量。

若要使用 TTL，請先在資料表中啟用該功能，接著定義一個屬性以儲存 TTL 過期時間戳記。時間戳記必須以秒精細程度以 [Unix epoch 時間格式](https://en.wikipedia.org/wiki/Unix_time)儲存為[數字](HowItWorks.NamingRulesDataTypes.md#HowItWorks.DataTypes)資料類型。TTL 程序會忽略 TTL 屬性不是數字類型的項目。每次建立或更新項目時，您可計算其過期時間，並將結果儲存在 TTL 屬性中。

具有有效且已過期 TTL 屬性的項目，可能會在過期後數天內由系統自動刪除。您仍可更新尚未刪除的過期項目，例如變更或移除其 TTL 屬性。在更新過期項目時，建議使用條件運算式，以確保該項目未在此期間被刪除。使用篩選運算式，從[掃描](Scan.md#Scan.FilterExpression)與[查詢](Query.FilterExpression.md)結果中排除過期項目。

被刪除的項目運作方式與一般刪除操作所刪除的項目相同。項目刪除後，會以「服務刪除」的形式送入 DynamoDB Streams，而非「使用者刪除」，並會從本機次要索引與全域次要索引中移除，與其他刪除操作相同。

如果您使用 [Global Tables version 2019.11.21 (目前版本)](GlobalTables.md)，且同時啟用 TTL 功能，DynamoDB 會將 TTL 刪除複製至所有資料表複本。初始 TTL 刪除在 TTL 到期的區域內不會消耗寫入容量單位 (WCU)。不過，當使用佈建容量時，複製 TTL 刪除至資料表複本會在每個複本區域中消耗一個複製的寫入容量單位；若使用隨需容量模式，則會消耗一個複製的寫入單位，並產生相應費用。

如需 TTL 的詳細資訊，請參閱下列主題：

**Topics**
+ [在 DynamoDB 中啟用存留時間 (TTL)](time-to-live-ttl-how-to.md)
+ [在 DynamoDB 中運算存留時間 (TTL)](time-to-live-ttl-before-you-start.md)
+ [操作過期項目與存留時間 (TTL)](ttl-expired-items.md)