EXPLAIN是干什么用的?
EXPLAIN是MySQL的一个性能分析工具,分析SQL性能,可以知道这个SQL有没有优化的空间,这个SQL目前运行的一个性能级别,用了哪些索引,这就是EXPLAIN的作用。
语法格式
EXPLAIN SELECT * FROM `sys_user`
执行结果 结果字段详解:
结果字段 详解
id 在多个查询SQL过程中用来查询SQL语句的执行顺序,最大值优先最高
select_type 主要是用于区别查询的类型,1、SIMPLE(简单select查询,查询中不包含子查询或者UNION);2、PRIMARY(只是在有子查询的语句中最外面的SELECT,主查询);3、SUBQUERY(在SELECT或WHERE列表中包含了子查询);4、DERIVED(在FROM列表中包含的子查询被标记为DERIVED(衍生)MySQL会递归执行这些子查询,把结果放在临时表里);5、UNION(若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM字句的子查询中,外层SELECT将被标记为DERIVED);6、UNION RESULT(从UNION表获取结果的SELECT)
table 显示这一行的数据是关于哪张表的
partitions 分区,暂时不用,感兴趣可以了解一下
possible_keys 这行SQL可能用到的索引
key 这行SQL实际用的索引
key_len 索引的长度,数值越小越好
ref 显示那个索引列被使用了
rows 表查询数据
filtered 显示出来的行,根索引条数的一个百分比
Extra 1、Using filesort:文件排序,需要对SQL优化;2、Using temporary:产生临时表,厂家于排序order by 和分组查询group by,需要考虑一下优化了;3、Using index:效率不错,无需优化
祝大家都能成为SQL优化大神
ok,我话说完