生存时间 (TTL) - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

生存时间 (TTL)

DynamoDB 的生存时间(TTL)是一种经济实惠的方法,用于删除不再相关的项目。通过 TTL,您可以定义每个项目的过期时间戳,指示何时不再需要某个项目。DynamoDB 会在项目过期时间到期后的几天内自动将其删除,而不会消耗写入吞吐量。

要使用 TTL,请先在表上启用它,然后定义一个特定的属性来存储 TTL 过期时间戳。时间戳必须用 Unix 纪元时间格式以秒为单位进行存储。每次创建或更新项目时,您都可以计算过期时间并将其保存在 TTL 属性中。

系统可以随时删除具有有效、已过期 TTL 属性的项目,通常是在过期后的几天内。您仍然可以更新待删除的过期项目,包括更改或删除其 TTL 属性。更新过期项目时,我们建议您使用条件表达式来确保该项目随后未被删除。使用筛选表达式从扫描查询结果中删除过期的项目。

已删除项目的工作原理与通过典型删除操作删除的项目类似。删除后,项目会以服务删除而不是用户删除的形式进入 DynamoDB Streams,并像其它删除操作一样从本地二级索引和全局二级索引中删除。

如果使用全局表的全局表版本 2019.11.21(当前版),并且还使用生存时间特征,则 DynamoDB 会将 TTL 删除复制到所有副本表。在出现 TTL 到期的区域中,初始 TTL 删除不会消耗写入容量单位(WCU)。但是,在每个副本区域中,当使用预置的容量时,复制到副本表的 TTL 删除将消耗一个复制的写入容量单位,或在使用按需容量模式时消耗一个复制的写入容量单位,并且将收取适用的费用。

有关 TTL 的更多信息,请参阅以下主题: