面试问到了这个问题,然后我一脸懵逼,平时不注意就给自己挖了坑,记录下来,方便查询

  1. 在 WHERE 子句中使用 !=<> 操作符
  2. 在 WHERE 子句中使用 or 来连接条件
  3. 字段类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不会使用索引
  4. LIKE 的模糊查询以 % 开头,索引失效
  5. 在 WHERE 子句中对字段进行表达式操作
SELECT * FROM user WHERE age/10 = 2; #失效
SELECT * FROM user WHERE age = 2*10; #有效
  1. 在 WHERE 子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描
  2. 在 WHERE 子句中的 “=” 左边进行函数、算术运算或其他表达式运算会导致索引失效
最后修改:2019 年 11 月 01 日
如果觉得我的文章对你有用,请随意赞赏