SQL语句很慢,如何分析呢?
- 聚合查询
- 多表查询
- 表数据量很大查询
- 深度分页查询
聚合查询:我们可以新增一个临时表来解决
多表查询:我们可试着优化SQL语句的结构了
表数据量很大查询:我们可以添加索引,但有时候已经添加了索引,执行依然很慢,我们要分析这条SQL,通过SQL的执行计划(explain),我们可以分析下这条SQL具体原因
key 当前SQL实际命中的索引 key_len索引占用的大小 extra 额外的优化建议
SQL查询是否进行了回表
type:sql的连接类型,由好到差:NULL、system、const、eq_ref、ref、range、index、all
- system:查询系统中的表
- const:主键查询
- eq_ref:主键索引查询或唯一索引查询
- ref:索引查询
- range:范围查询
- index:索引树查询(遍历索引树,效率不高)
- all:全盘查询