mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

2021-10-25 14:51:30 字數 913 閱讀 9437

硬刪除

硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。

軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去除,而是會設定乙個字段,常見的有:isdelete或者state等字段來標記刪除狀態。當該字段為0的時候為未刪除狀態,為1時則是刪除狀態。

在現實情況中,很多時候我們說的刪除並不是真的是刪除的本意,因為站在使用者的角度來看,並不是一種刪除的狀態:

訂單不是被刪除的,是被「取消」的。

員工不是被刪除的,是被「解雇」的(也可能是退休或者暫時離職了)。

職位不是被刪除的,是被「填補」的(或者招聘申請被撤回)。

所以這些時候,我們並不能真的把記錄刪除,所以軟刪除就出現了。

當然,我們更希望用一下代表狀態的詞來代替isdelete,就比如我們專案中已經使用的:有效、停用、棄用等等。

而在查詢時只需要加上乙個判斷即可成功篩出軟刪除的物件了。

例:select user.id, user.password from tbl_user where isdelete = 0

軟刪除和硬刪除的處理方法

實際上,並不是所有的記錄都有必要被一直保留,過多的資料會導致查詢效率低下,資料庫臃腫。

比如許多程式的日誌檔案只會存留最近一周或者最近一月。對於更久的資料需要物理刪除。

那麼有沒有既能實現軟刪除保留需要的資料又能在資料量過大的時候進行物理刪除的辦法呢,答案是有的。

可以為state欄位賦予另乙個意義,當它是2時(當然別的數值也行)不再保留,直接物理刪除。

或者再宣告乙個欄位isrecycle,來表示該記錄需不需要直接刪除。

這樣在定期維護資料庫的同時也可以刪除不再需要的記錄。

mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

硬刪除 硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去...

硬刪除與軟刪除,如何使用嗎?

一 應用場景 在定製lotus郵箱的時候,我們想實現郵件自動或手工提取功能,提取的郵件將被備份到本地 機 server上的將被徹底刪除,站裡面也不保留。這種情況我們就要使用硬刪除。在郵箱中,通常情況下我們要清理自己的郵箱,如果發生了誤刪除,我們希望能夠在 站中找到被誤刪除的郵件。這種情況下的就是軟刪...

軟刪除 軟鏈結和硬鏈結

乙個檔案允許出現在多個目錄中,這樣,它就有多個硬鏈結。當硬鏈結的數目 link count 降為0時,檔案會被linux刪除。所以很多時候,unlink與remove在linux作業系統中是乙個意思。由於軟鏈結 soft link 的廣泛使用 soft link不會影響link count,而且可以...