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的时候要小表驱动大表,减少循环次数,提高查询速度