sql执行很慢的原因首先要去看sql的结构举例如下:
1.聚合查询(使用到了mysql内置的聚合函数):一般我们处理的方案是新增临时表来解决。
2.多表查询(比如我们在做业务逻辑好几十张表在做查询时):需要优化sql的结构,比如使用联合索引等等一些方案.
3.表数据量过大:我们这里值得是单表而言,一般就是添加索引即可解决.
上面介绍完各种类型,我们在介绍下几个重要的参数:
key和key_len这两个参数一般放在一起它们的作用是看这条sql是否走了索引.
type:表示这条sql连接类型的好坏一般我们建议优化到const之前.也就是主键查询.这里性能最差的就是all了,它指的是全表扫描我们一般不建议使用.
Extra:这里面又2个参数:
其一:using where和using index查看使用了索引,需要的数据在索引列中能找到,不需要回表查询
其二:using condition:使用了索引但不需要回表查询.
综上所述:我们一般分析的步骤是在查询sql的语句之前加入explain,根据查询结果的详情分析,再结合上面的参数我们一般就能确定sql的原因和优化.