Delete

數據庫同步和軟刪除方案中的 Tombstone 表與已刪除標誌

  • March 5, 2012

我需要跟踪已刪除的項目以滿足客戶端同步需求。

一般來說,最好添加一個tombstone 表和一個觸發器來跟踪從伺服器數據庫中刪除一行的時間 - 基本上是在 tombstone 表中添加一個包含已刪除項目的數據的新行 - 還是將項目保留在原始表並將它們標記為已刪除,通常使用位類型的列,以指示刪除了一行,並在刪除發生時跟踪另一列?

一般來說,最好了解具體要求,而不是根據在大多數情況下最有效的設計決策。 任何一個都可能更可取。以下是一些需要收集的細節:

  • 刪除需要多快?
  • 取消刪除需要多快?
  • 多久查詢一次已刪除的數據,是否會與未刪除的數據一起查詢?
  • 對已刪除數據的查詢需要多快?
  • 您是否還需要只保留已刪除的項目或更改?
  • 你需要保持主表上的表/索引很小嗎?
  • 數據庫平台上有哪些分區和/或更改跟踪技術可用?
  • 有多少可用磁碟空間?
  • 刪除是即時進行還是批量操作?

引用自:https://dba.stackexchange.com/questions/14402