逻辑或物理删除在Spanner中执行得更好吗?

时间:2018-07-26 15:08:05

标签: database-performance google-cloud-spanner

根据以下示例,建议在Spanner中使用以下哪种删除策略?

CREATE TABLE Singers (
  SingerId   INT64 NOT NULL,
  FirstName  STRING(1024),
  LastName   STRING(1024),
  SingerInfo BYTES(MAX),
  BirthDate  DATE,
  Status     STRING(1024)
) PRIMARY KEY(SingerId);
  • 逻辑删除
    • Status字段= 'DELETED'
    • Status字段= null
  • 删除密码
      从表中删除的
    • Singer记录

根据我对Spanner工作方式的理解,需要将逻辑上删除的记录转移到扫描的末尾,以便首先读取相关数据,而不是不必要地扫描删除的记录。

物理上已删除的记录将导致Spanner必须重新索引或拆分数据。

我不确定哪个是首选,或者我对Spanner中的数据修改的理解是否正确。

1 个答案:

答案 0 :(得分:0)

首选物理删除方式而不是逻辑删除方式,因为最后要扫描的日期更少,并且您可以尝试以这种方式避免完全扫描,因为这样比较耗时。

对于分割,确实是the reads are faster分割较少,但是它们是在添加更多行时创建的,因此,我将使用Physical。

相关问题