当前位置:网站首页>MySQL EXPLAIN 性能分析工具详解
MySQL EXPLAIN 性能分析工具详解
2022-08-03 05:11:00 【张童瑶】
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 | 分区,暂时不用,感兴趣可以了解一下 |
type | 显示使用了性能级别(重要) ;级别从最好到最差以此顺序为:system>const>eq_ref>ref>range>index>ALL,一般来说,得保证查询达到range级别,最好能达到ref;1、system:表仅有一行(=系统表),这是const联接类型的一个特例;2、const:表最多有一个匹配行,它将在在巡开始时被读取。因为仅有一行,const表很快,因为它们只读取以一次(作者大白话:其实就是速度很快,很难达到这个级别);3、eq_ref:唯一性索引扫描,对于每个索引建,表中只有一条记录与匹配。常见于主键或唯一索引扫描(作者大白话:性能仅次于const,基本上也不用优化);4、ref:非唯一性索引扫描,返回匹配某个单独值的所有行,本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而他可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体(作者大白话:就是非唯一性索引);5、range:只检索给定范围的行,使用一个索引来选择行,key列显示使用了哪个索引一般就是在你的where语句中出现了between、<、>、in等的查询这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束于另一点,不用扫描全部索引;6、index:通常比ALL快,就是遍历索引,就是用了索引会出现这个级别(作者批注:其实你的SQL达到这个index级别就已经很不错了);7、ALL:全表扫描,也是最慢的 |
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,我话说完
我的其他文章
我的网站
边栏推荐
猜你喜欢
跨域错误的原因及处理方法
ModelArts第二次培训
Exception(异常) 和 Error(错误)区别解析
js实现一个 bind 函数
第四次培训
7.24[C语言零基础 知识点总结]
Common fluorescent dyes to modify a variety of groups and its excitation and emission wavelength data in the data
2.ROS通信机制
Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)
如何不耍流氓的做运维之-SHELL脚本
随机推荐
web安全-SSTI模板注入漏洞
D-PHY
ModelArts第二次培训
Djiango第二次培训
【Flask】Flask-SQLAlchemy的增删改查(CRUD)操作
-完全数-
VSO Downloader Ultimate 5.0.1.45 中文多语免费版 在线视频下载工具
Presto installation and deployment tutorial
【myPow,2次幂,3次幂..代码实现】
Installation of Apache DolphinScheduler version 2.0.5 distributed cluster
轨迹(形状)相似性判断与度量方法
在树莓派上搭建属于自己的网页(2)
Benchmark 第一篇 了解Benchmark
junit总结
HarmonyOS应用开发培训第二次作业
【扫雷】多方法超详细 7.28
高可用 两地三中心
3. 无重复字符的最长子串
2.ROS通信机制
Makefile 遍历子目录模板