物理删除:
物理删除就是将数据从硬盘中删除,可以释放存储的空间,缩小数据表的体积。 DELETE,Drop,TRUNTRUNCATE 都是物理删除。
物理删除的代价:
1 物理删除是真的删除,恢复的难度很大。
如果我们不小心删除了,那么我们有2种方法来恢复表,第一种是逐条分析sql语句,除掉让数据删除的部分,重新执行sql语句。
第二种方法是采用延时同步的方法,用2个数据库,一个保持当前的数据,一个延迟保存24小时后的数据,这样我们一个数据库出现问题的时候,可以直接用另外一个数据库。
2 物理删除会让连续的主键值变得不连续,导致分页查询变慢,
什么样的数据不适合做物理删除?
核心业务表的数据不适合做业务的变更,只做状态的更改。
但是当我们想删除一些数据来增大空间的时候,我们可以采用转移数据,将一些数据转移到其他的表中。
逻辑删除:
我们可以在数据表中添加一个字段,比如说TINYINT,让0表示这个数据已经被删除,1表示数据还在。
使用这个语句,创建一个和t_user结构一样的表。
CREATE TABLE t_user_history LIKE t_user;