数据库优化专题---2、逻辑删除还是物理删除
数据库删除数据经常面临删除操作,那如何确定是逻辑删除还是物理删除,这节我们简单介绍下?物理删除物理删除就是用DELETE、TRUNCATE、DROP语句删除数据物理删除是把数据从硬盘中删除,可以释放存储空间,缩小数据表的体积,对性能有帮助物理删除的代价由于物理删除是真删除,所以数据恢复起来难度很大恢复机制如下:物理删除会造成主键的不连续,导致分页查询变慢SELECT....
·
数据库优化专题—1、表的主键用数字还是UUID
数据库优化专题—2、逻辑删除还是物理删除
数据库优化专题—3、千万记录如何快速分页
数据库优化专题—4、读多写少和读多写多
数据库优化专题—5、删改数据如何避免锁表
数据库优化专题—6、如何避免偷换交易中的商品信息
数据库优化专题—7、SQL语句优化
数据库优化专题—8、Mysql参数优化
数据库优化专题—9、索引优化
数据库优化专题—10、存储优化
数据库优化专题—11、数据库结构优化
数据库删除数据经常面临删除操作,那如何确定是逻辑删除还是物理删除?这节我们简单介绍下
物理删除
- 物理删除就是用DELETE、TRUNCATE、DROP语句删除数据;
- 物理删除是把数据从硬盘中删除,可以释放存储空间,缩小数据表的体积,对性能有帮助;
物理删除的代价
- 由于物理删除是真删除,所以数据恢复起来难度很大;
恢复机制如下:
- 物理删除会造成主键的不连续,导致分页查询变慢;
SELECT ...... FROM ...... LIMIT 1000,20;
SELECT ...... FROM ...... WHERE id>=1000 AND id<=1020;
什么数据不适合做物理删除
- 核心业务表的数据不建议做物理删除,只做状态变更。比如订单作废、账号禁用、优惠券作废等等;
- 既不删除数据,又不能缩小数据表体积,可以把记录转移到历史表;

逻辑删除
- 逻辑删除就是在数据表添加一个字段(is_deleted),用字段值标记该数据已经逻辑删除,查询的时候跳过这些数据;
SELECT ...... FROM ...... WHERE is_deleted=0;
- 核心业务数据表,必须要采用逻辑删除;
总结
核心业务表采用逻辑删除,其他业务表可以物理删除。
更多推荐
所有评论(0)