数据库优化专题—1、表的主键用数字还是UUID
数据库优化专题—2、逻辑删除还是物理删除
数据库优化专题—3、千万记录如何快速分页
数据库优化专题—4、读多写少和读多写多
数据库优化专题—5、删改数据如何避免锁表
数据库优化专题—6、如何避免偷换交易中的商品信息
数据库优化专题—7、SQL语句优化
数据库优化专题—8、Mysql参数优化
数据库优化专题—9、索引优化
数据库优化专题—10、存储优化
数据库优化专题—11、数据库结构优化


数据库删除数据经常面临删除操作,那如何确定是逻辑删除还是物理删除?这节我们简单介绍下

物理删除

  • 物理删除就是用DELETE、TRUNCATE、DROP语句删除数据;
  • 物理删除是把数据从硬盘中删除,可以释放存储空间,缩小数据表的体积,对性能有帮助;

物理删除的代价

  1. 由于物理删除是真删除,所以数据恢复起来难度很大;
    恢复机制如下:
  2. 物理删除会造成主键的不连续,导致分页查询变慢;
SELECT  ...... FROM  ...... LIMIT 1000,20;
SELECT  ...... FROM  ...... WHERE id>=1000 AND id<=1020;

什么数据不适合做物理删除

  • 核心业务表的数据不建议做物理删除,只做状态变更。比如订单作废、账号禁用、优惠券作废等等;
  • 既不删除数据,又不能缩小数据表体积,可以把记录转移到历史表;

逻辑删除

  • 逻辑删除就是在数据表添加一个字段(is_deleted),用字段值标记该数据已经逻辑删除,查询的时候跳过这些数据;
SELECT ...... FROM ...... WHERE is_deleted=0;
  • 核心业务数据表,必须要采用逻辑删除;

总结

核心业务表采用逻辑删除,其他业务表可以物理删除。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐