sql慢查询优化

120 阅读1分钟

1. explain分析语句

explain部分名词解释:

selectType:查询类型

simple:简单查询。查询不包含子查询和union

primary:复杂查询中最外层的select

subquery:包含在 select 中的子查询(不在 from 子句中)

derived:包含在 from 子句中的子查询。MySQL会将结果存放在一个临时表中

type:索引查找类型

即MySQL决定如何查找表中的行 从最优到最差依次为:const > eq_ref > ref > range > index > all

index:扫描全部索引

阿里java开发手册【推荐】 SQL 性能优化的目标:至少要达到 range 级别,要求是 ref 级别,如果可以是 consts 最好。

2. 索引优化的一些情况

like查询最左边不能是%

要遵循最左前缀原则

避免在索引列上进行计算

使用覆盖索引,避免回表,提高查询速度

...

3. 其他的sql优化

left join、right join的时候要小表驱动大表,减少循环次数,提高查询速度