优化'软删除'实体索引号

时间:2015-07-02 22:42:16

标签: google-app-engine google-cloud-datastore app-engine-ndb nosql

几乎所有应用程序都需要标记为删除数据存储区中的某些实体。根据业务逻辑,可以物理删除这些实体,或者如上所述“软删除”。

在Google数据存储区中使用此功能的一个显而易见的方法是使用索引属性来存储软删除信息。例如:

Post
  - Title
  - Body
  - IsDeleted

这种方法的问题在于,为了跟踪非常少量的软删除实体,所有这些实体都必须忍受额外索引的开销。

当软删除的实体非常小时,有哪些策略可以避免索引?

我能想到的一种方法是更改​​实体类型,例如从Post更改为DeletedPost,这涉及物理删除旧实体并创建新实体。

1 个答案:

答案 0 :(得分:0)

我能想到的唯一其他解决方案是创建一个名为DeletedPost的表,并将表中已删除帖子的ID存储起来。

执行查询时,请在已删除的表中排除ID。 (加入) 所以与添加IsDeleted基本相同,但移到了另一个表。