drop 是删除整个表,不仅仅是表中的数据,包括表结构,而delete 只是删除表中的数据,并且可以添加where条件删除指定的数据。例如:
drop table 用户表delete from 用户表
delete from 用户表 where ID=2
硬删除不多解释
有后悔药可以恢复数据。但是同时带来弊端。导致 查数据时 慢 尤其是一些特殊场景下。
目前 软删除的做法
第2种 方式 其实是最差的。因为 可以为null 导致 查询效率大打折扣。更重要的情况 会导致 全表扫描 如果数据量偏大千万不要贪图方便就是这要搞了,这类导致查询的性能瓶颈我在2个项目都有遇到过。
有网友提供说 加复合索引 (id, deleted_at) 应该也可以没有测试过性能能提高多少。如果你用过也可以告知一下我。让我长长姿势O(∩_∩)O哈哈~
https://ruby-china.org/topics/34540
记录这个不为别的 给自己看,如果对你有帮助我也特别高兴。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)