SQL优化

2022-05-07  本文已影响0人  林几许

主要记录一些常用的优化方式

1,explain

做优化的时候要善用explain来查看SQL执行计划,主要关注几个数据:

2,Sql语句中in包含的值不应过多

mysql对于in做了相应的优化,比如会把数据放到数组并排序,如果数据比较多,性能消耗会比较大,另外对于连续得数值,我们尽可能使用between and。

3,select语句指明字段名称

select * 会增加很多不必要的消耗

4,当只需要一条数据的时候,使用limit 1

这是为了使explain中的type列达到const类型

5,如果排列字段没用索引,尽量少排序

6,如果限制条件中其他字段没有索引,尽量少用or

会使其中是索引字段的索引失效

7,使用合理的分页方式提高分页效率

select id,name from product limit 866613, 20
优化后
select id,name from product where id> 866612 limit 20

8,避免在where字句中对字段进行null值判断

对于null的判断会导致引擎放弃使用索引而进行全表扫描

9,不建议使用%前缀模糊查询

会使索引失效

10,避免在where字句中对字段进行表达式操作

会使索引失效

11,避免隐式类型转化

where子句中出现column字段的类型和传入的参数类型不一致的时候发生的类型转换,建议先确定where中的参数类型。

12,对于联合索引来说,要遵守最左前缀法则

会使索引失效

13,必要时可以使用force index来强制查询走某个索引

有的时候MySQL优化器采取它认为合适的索引来检索SQL语句,但是可能它所采用的索引并不是我们想要的。这时就可以采用forceindex来强制优化器使用我们制定的索引。

14,注意范围查询语句

对于联合索引来说,如果存在范围查询,比如between、>、<等条件时,会造成后面的索引字段失效。

15,关于JOIN优化

上一篇 下一篇

猜你喜欢

热点阅读