保持 ROW = NULL 还是删除它?

Tol*_*leo 5 mysql performance delete performance-tuning

在这个方案中

id  uid     content
1   1       A
2   1       B
3   1       C
4   1       D
5   1       E
Run Code Online (Sandbox Code Playgroud)

如果用户决定他不需要这些行,id = 3, 4, 5是让他将其设置contentNULL还是删除该行更好?

这个过程发生了很多次而且他可能会NULL再次使用这些插槽。我是否仍然使用UPDATE并将其设置为NULL以防他将来更改它?还是只是DELETE整行?

问题是这样的:最好

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

或者

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

Han*_*non 6

如果这些行将被频繁重复使用,最好将值设置为NULL,或者简单地添加一列is_deleted以指示该行已被软删除。连续删除和插入行会导致表碎片化严重,并可能导致性能下降。这通常用于队列中有已知数量的槽(行)的队列,并且这些槽是提前分配的。

如果这些行不会被重用,或者很少被重用,那么最好释放这些行使用的空间。