MySQL EXPLAIN 性能分析工具详解

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,我话说完

经验分享 程序员 微信小程序 职场和发展