-
Notifications
You must be signed in to change notification settings - Fork 171
TTL Usage
刘涛 edited this page Jun 12, 2020
·
1 revision
BaikalDB TTL(Time To Live) 特性允许用户指定表数据的自动过期时间,过期数据会被定期清理,无需用户手工删除。 目前还不支持Rocksdb_cstore,不支持global index和fulltext索引的表。
- 建表时通过注释指定过期时间ttl_duration,单位秒。COMMENT='{"ttl_duration":86400,.....}
- 拥有全局索引的表不支持TTL,建表会失败。
- INSERT/REPLACE语句支持注释更改行级ttl_duration。通过在sql增加注释指定/{"ttl_duration":86400}/INSERT ....
- 由于底层存储不一样,表的TTL只能建表指定,后续没法更改为非TTL表,反之亦然。
- 过期的数据无法被访问到。
举例(数据一天后过期):
CREATE TABLE `t1` (
`id` int(10) NOT NULL ,
`date` DATE NOT NULL ,
`hour` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=Rocksdb DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=20 COMMENT='{"resource_tag":"cluster1", "replica_num":3, "ttl_duration":86400, "namespace":"TEST"}'