假设我在 second-1 处插入一列,在 second-2 处插入另一列。表的默认 TTL 设置为 10 秒,例如:
问题 1 : 数据 1 和数据 2 将在 10 秒后删除还是数据 1 将在 10 秒后删除,数据 2 将在 11 秒后删除(因为它是在第二秒中插入的)?
问题 2 :是否可以在表级别设置 TTL,使表中的每个条目都以 FIFO 方式基于 TTL 到期? (data-1 将在 second-10 和 data-2 在 second-11 到期),在为每个数据点插入时没有指定 TTL? (应该能够在表级别指定吗?)
谢谢您的帮助 :)
编辑 :
https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html 的页面说
他们说“整张 table ”这让我很困惑。
最佳答案
表级别的 TTL 与值级别的 TTL 没有任何不同:它指定了每一行的默认 TTL 时间。
TTL 指定在多少秒后这些值必须被视为过时并因此被删除。引用点是 INSERT/UPDATE 时间戳,所以如果你在 09:53:01 插入/更新一行:
您可以通过在查询中指定
USING TTL X
子句来覆盖默认 TTL 时间,其中 X 是您的新 TTl 值。请注意,明智地使用 TTL 而不是 会导致墓碑问题。还要注意,TTL 用法有一些怪癖。查看 this 最近的答案以获取更多详细信息。
关于用于表行为的 cassandra TTL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41542865/