Mysql

保持ROW = NULL 還是DELETE 呢?

  • March 2, 2018

在這個方案中

id  uid     content
1   1       A
2   1       B
3   1       C
4   1       D
5   1       E

如果使用者決定他不需要這些行,id = 3, 4, 5讓他將其設置content為更好NULL還是只刪除該行?

這個過程發生了很多次,他可能會NULL再次使用插槽。我是否仍然使用UPDATE並將其設置為NULL以防他將來更改它?還是只是DELETE整行?

問題就像:是不是更好

DELETE行?INSERT| -> DELETE-> INSERT.. DELETE->INSERT

要麼

UPDATE行?INSERT| -> UPDATE to NULL-> UPDATE to value.. UPDATE to NULL->UPDATE to value

如果這些行將被頻繁重複使用,最好將值設置為NULL,或者簡單地添加一列is_deleted以指示該行已被軟刪除。連續刪除和插入行會導致表碎片嚴重,並可能導致性能下降。這通常用於隊列中有已知數量的槽(行),並且這些槽是提前分配的。

如果這些行不會被重新使用,或者很少被重新使用,那麼最好釋放這些行使用的空間。

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