【发布时间】:2016-11-22 19:12:28
【问题描述】:
我有多个表要保留它们已删除的数据。
我想到了两种方法来实现这一点:
-
创建一个名为deleted_x的新表,从x中删除时,立即插入deleted_x。
优势:只查询一张表。
缺点:
- 每次删除都插入
- 当原始表结构发生变化时,我也必须更改已删除的表。
-
有一个名为
is_deleted的列,并将其放在每个表的分区键中,并在删除行时将其设置为 true。优点:一表结构
缺点:在来自表的所有查询中提及
is_deleted
还有什么我应该考虑的性能注意事项吗? 哪种方式更好?
【问题讨论】:
-
为什么不保留数据而只对同一张表使用
deleted标志? -
这正是选项#2 中解释的场景。问题是必须始终通过此
deleted标志进行查询,这意味着将其放在主键中或暴露给开发人员错误,他们可以通过二级索引在没有它的情况下进行查询
标签: cassandra