面试问到了这个问题,然后我一脸懵逼,平时不注意就给自己挖了坑,记录下来,方便查询
- 在 WHERE 子句中使用
!=
或<>
操作符 - 在 WHERE 子句中使用
or
来连接条件 - 字段类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不会使用索引
- LIKE 的模糊查询以
%
开头,索引失效 - 在 WHERE 子句中对字段进行表达式操作
SELECT * FROM user WHERE age/10 = 2; #失效
SELECT * FROM user WHERE age = 2*10; #有效
- 在 WHERE 子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描
- 在 WHERE 子句中的 “=” 左边进行函数、算术运算或其他表达式运算会导致索引失效
2 条评论
面试了已经,真快啊
已经入职好久了