- 物理删除会造成主键的不连续,导致分页查询变慢
- 核心业务表的数据不建议做物理删除,只做状态变更
- 既不删除数据,又能缩小数据表体积,可以把记录转移到历史表
- 逻辑删除就是在数据表添加一个字段(is_deleted),用字段值标记该数据已经逻辑删除
定期把逻辑删除的表,转移到 history表中,减少体积
- 写个定时程序,定时把逻辑删除的,转移到 history表,减少表的体积
数据只能逻辑删除,不能物理删除
逻辑删除
is_delete
复制表
create table t_user_history like t_user;
物理删除
物理删除就是 彻底从数据表中删除
物理删除的代价
- 真删除,数据恢复难度大
- 造成主键的不连续,导致分页查询变慢
- 数据库延迟同步,恢复数据
什么样的数据不适合物理删除?
- 逻辑删除的转移到 历史表
- is_delete
- 服务器空闲时,把逻辑删除的表转移到 历史表