逻辑删除的null问题

来源:6-7 【实战】MySQL中的比较运算符-1

蓝色西西

2020-12-08

老师, 因为业务上需要,所以要设计一个 datetime delete_time default null 字段放在每个数据表中,实现逻辑删除。删除时标记delete_time时间为当前时间。但是,这个字段加入后,因为很多null存在,各种查询的最后条件都是 and delete_time is null , 这样导致索引无效,产生很多全表扫描,影响查询效率。请问这个怎么解决。

写回答

1回答

sqlercn

2020-12-08

给delete_time一个默认时间比如1970-01-01

0
4
sqlercn
回复
蓝色西西
这种情况如果没有其它条件的话是无法用到索引的同delete_time is null的情况差不多。
2020-12-10
共4条回复

零基础入门 详解企业主流数据库MySQL8.0

掌握SQL优化与慢查询优化,具备独当一面的能力

1641 学习 · 485 问题

查看课程