应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。
select*fromtablewhere name !='张三'
应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num isnull
优化方案:
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10or num=20
可以这样查询:
select id from t where num=10unionallselect id from t where num=20
分别把num=10 和num=20 的id查询出来 , 通过unionall 关键字进行合并
对于like关键字 以%开头,都会使数据库引擎放弃使用索引
select id from t where name like '%abc%'
Mysql优化策略1.SQL语句的优化应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。select * from table where name != '张三'应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null优化方案:可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:selec