采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师, 因为业务上需要,所以要设计一个 datetime delete_time default null 字段放在每个数据表中,实现逻辑删除。删除时标记delete_time时间为当前时间。但是,这个字段加入后,因为很多null存在,各种查询的最后条件都是 and delete_time is null , 这样导致索引无效,产生很多全表扫描,影响查询效率。请问这个怎么解决。
给delete_time一个默认时间比如1970-01-01
老师,那这样会有很多1970-01-01这个值。这个字段的索引区分度不高,查询效率不高怎么办?
你查询的时候会经常查询时间为1970-01-01这样的日期的数据吗?如果不会的话那这个值对于索引的查询效率就不会有影响。
有时候分页要这样查询select * from table where delete_time="1970-01-01" limit 1000,100
登录后可查看更多问答,登录/注册
掌握SQL优化与慢查询优化,具备独当一面的能力
957 21
1.5k 15
1.2k 14
1.3k 13
1.1k 11