一,为什么要优化sql
总结一下就是为了提高效率,优化sql 是一种方式,索引的合理创建和使用也是一种方式。
二,怎么优化sql
1,为了提高效率一般会使用索引,但是不好的sql 语句会使得数据库放弃索引 而进行全表扫描 大大的降低效率 (比如下面👇这些)所以sql 语句要注意。
(1)一般使用 “like” 时,第一个位置一定不能加上 % ,如like '%张%‘。否则会使得数据库放弃索引 而进行全表扫描,可以使用 like ‘张%’
(2)in 和not in 一定要谨慎使用 ,可以使用between and 代替它。
如 : SELECT id,name,hp from hero WHERE hp IN (1,2,3);
代替:SELECT id,name,hp from hero WHERE hp BETWEEN 1 AND 3
;
(3)or 使用时要谨慎。在or 后面跟的多个字段中 如果有的字段没有索引时 就不会走索引 。
(4)进行null值判断时避免使用 is null 、is not null ,可以使用默认值去代替。
如:SELECT id,name,hp from hero WHERE hp is null;
代替:SELECT id,name,hp from hero WHERE hp =0;
(5)避免使用 > < != 操作符
(6)在where 中 “=”的左边 不要使用函数,算数/表达式运算。否则无法正常使用索引。
(7)避免数据类型的隐式转换,因为隐式转换会导致索引失效。
如:select name,phone from customer where id = '111';
以上会导致放弃索引 而进行全局扫面 从降低效率的一部分sql 语句 ,暂时就想到这些,如果有大佬知道其它的可以写在评价中哟。
2,上面是针对于索引 而进行的sql 优化。下面也是sql优化
(1)使用select 进行查询时 不要使用 select * from t。要使用具体的列 去代替 *
。。。。。。。
暂时就这些了,如果有什么错误,希望能不吝赐教。