请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

给时间加索引为什么不走呢

图片描述这个就走索引了图片描述加了个OR查询条件就不走索引了,老师这是为啥呢

正在回答

1回答

这是MySQL优化器的一个问题:对索引列使用OR条件可能会走全表扫描,你可以试试in语法,可能会解决问题:

where create_time in ('2021-07-14', '2021-07-13')


0 回复 有任何疑惑可以回复我~
  • 提问者 lyq打不死的小强 #1
    使用in语法也还是不走索引
    回复 有任何疑惑可以回复我~ 2021-07-14 22:51:18
  • Moody 回复 提问者 lyq打不死的小强 #2
    你把 select dtlsql 改成 select create_time 试试能不能走索引,能走的话可以加个联合索引。
    可能是优化器估计要回表,就直接走全表扫描了,是主动选择的,并不是走不了
    回复 有任何疑惑可以回复我~ 2021-07-15 09:25:33
  • 提问者 lyq打不死的小强 回复 Moody #3
    我今天用or来查询的时候看执行计划又走索引了,这都是优化器那边进行的选择吗
    回复 有任何疑惑可以回复我~ 2021-07-15 10:26:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信