如何使用MYSQL的EXPLAIN语句进行查询分析?

面试

1.在sq|语句前面加上explain,然后执行

2.分析输出,关注type,key,rows,extra这几个参数

type常见的值有:ref >range > index>all。

refrange,index都表示用上了索引。

ref表示使用上了非唯一索引,range常见于范围查询,表示扫描索引的一个范围;index表示扫描索引中的所有行;

all表示全表扫描,性能最差。

key表示用到的索引的名称;

rows表示要读取的行数,越小越好

extra会展示一些其它信息,例如using index(表示应用了覆盖索引),using filesort(使用了文件排序)

优化例子:建立联合索引,使索引里面包含要排序的所有字段,从文件排序优化到了索引排序。

id select_type table type key key_len ref rows Extra
1 SIMPLE user ref idx_age 5 const 1 Using index

id=1:单条简单查询,只有一层

select_type=SIMPLE:无关联子查询、无 UNION

table=user:操作表是 user

type=ref:使用普通索引等值匹配,性能良好

key=idx_age:本次查询真正使用了 age 索引

key_len=5:int 类型索引占用 5 字节

ref=const:匹配条件是常量 18

rows=1:预估只扫描 1 行数据

Extra=Using index覆盖索引,不用回表,性能最优

相关推荐
SunnyDays10116 小时前
Java 实现 PDF 页面删除、排序、旋转和裁剪
java·pdf
人工干智能6 小时前
科普:Pandas 索引器 loc 与 iloc 的编程思维
java·人工智能·pandas
持力行7 小时前
C++与Java变量声明、定义及内存分配的核心区别
java·开发语言·c++
AskHarries7 小时前
GitHub 登录配置流程
后端
接着奏乐接着舞9 小时前
大模型开发 agent 知识库
java
xuhaoyu_cpp_java9 小时前
SpringBoot学习(四)
java·经验分享·spring boot·笔记·学习
Sinclair9 小时前
安企CMS的安装-常见安装问题排查
运维·后端
Sinclair10 小时前
安企CMS的安装-安装引导与初始化
运维·后端
Sinclair10 小时前
安企CMS的安装-源码编译安装
运维·后端·go
Sinclair10 小时前
安企CMS的安装-同一服务器多站点部署
运维·后端