/ 前言 /
我们在开发中会发现, 明明我这条SQL语句应该是用到了索引才对, 但是为何速度仍然那么慢, 其实是你的SQL写的有问题导致了索引失效
, 我们来看下什么情况下MySQL的索引会失效
/ 索引失效 /
对查询进行优化,尽量避免全表扫描,避免导致索引失效
- 在where子句中进行null值判断的话会导致引擎放弃索引而产生全表扫描
在建立数据库的时候因尽量为字段设置默认值,如int类型可以使用0,varchar类型使用 ‘’SELECT id FROM table WHERE num is null
- 避免在where子句中使用!= ,< >这样的符号,否则会导致引擎放弃索引而产生全表扫描
SELECT id FROM table WHERE num != 0