WHERE从句中对列进行函数转换和表达式计算,导致索引失效
//假设loginTime加了索引,如下执行方式也会失效
select userId,loginTime
from loginuser
where Date_ADD(loginTime,Interval 7 DAY) >=now();
//改为:
select userId,loginTime
from loginuser
where loginTime >= Date_ADD(NOW(),INTERVAL - 7 DAY);
where后面的字段,留意其数据类型的隐式转换
//userid 是varchar字符串类型,但被mysql隐式转换导致没有用到索引
select * from user where userid = 123;
//改为:
select * from user where userid = '123';