對于資料洗掉一般來說有很多采用資料庫表增加一個delflag 來表是否洗掉,然而這樣操作無疑會有弊端,那就是每次查找的話都得在條件中使用delfllag ,這樣使得開發起來要兼顧這一方面,而且資料量大的話無疑會降低資料查詢的效率,
還有一種設計模式就是 另外新建一個表 用來存盤被洗掉的資訊,比如我們可以建立一個觸發器 或者是寫一個存盤程序,但是這樣,這個還可以設計成一個審計日志的表結構,這樣的話可對系統操作記錄可以查出日志,有人誤刪資料可以責任到人,但是聽說這樣也有弊端,如果洗掉資料會有大量的資料庫碎片 ,不知是否還有其他的弊端呢?
不知有哪位大神介紹下載什么情況下使用哪種設計模式或者是有更好的設計方案?
uj5u.com熱心網友回復:
洗掉方式是根據需求和應用而定的。應用和需求不同,洗掉的方式也不同。
常見的洗掉策略有:
1.磁區洗掉
2.insert歷史表,truncate原表
3.作某種特殊操作時,觸發洗掉
4.其他洗掉方式
........等等!
uj5u.com熱心網友回復:
既然洗掉了,還留著干嘛?既然還要查,那么修改標志位可以的啊,覺得怕資料量大了影響查詢,你換一張表存這些資料不僅也有這個問題,還有更多問題:因為即使與原表放一起,也還可以磁區的,而要是放到另外一張表,無論是程式來完成還是觸發器來完成,都是額外的開銷。uj5u.com熱心網友回復:
如果是資料字典的資料,建議留著,并且使用delflag 標記洗掉。 對歷史資料查詢是有用的。如果要刪的資料本身就是一張大表,建議移動到歷史表,或做表磁區。
uj5u.com熱心網友回復:
大表還是建議磁區表或歷史表處理轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80590.html
標籤:高級技術
上一篇:OCI OCITransStart 設定超時時間無效的問題
下一篇:2.服務器上有三個在線重做日志組,每個組有兩個成員,分布在不同的磁盤上,如果其中一個發現損害,啟動時會出現什么情況?如何解決
