MYSQL执行计划

分析mysql执行计划

前言 : 一直以为都不太明白explain执行计划有什么用处,今天特意抽出来一个时间,着重了解一下执行计划里面的字段都是一些什么意思;(看其他博主都是一大篇的前言,今天有时间自己也来说几句,哈哈哈哈哈哈)

在这里插入图片描述
在这里插入图片描述
第一个查询是全表扫描,第二个是索引扫描

**id : **
select_type : 是否是复杂语句
tbale : 表名 或者 表别名
**partitions : **
type : all是全表扫描 index 通过索引扫描
possible_keys : 可能可以利用的索引的名字。这里的索引名字是创建索引时指定的索引昵称;如果索引没有昵称,则默认显示的是索引中第一个列的名字。默认索引名字的含义往往不是很明显
key : 它显示了MySQL实际使用的索引的名字。如果它为空(或NULL),则MySQL不使用索引
key_len : 索引中被使用部分的长度,以字节计。
ref : 它显示的是列的名字(或单词“const”),MySQL将根据这些列来选择行。在本例中,MySQL根据三个常量选择行。
rows : MySQL所认为的它在找到正确的结果之前必须扫描的记录数。显然,这里最理想的数字就是1
**filtered : **
Extra : 这里可能出现许多不同的选项,其中大多数将对查询产生负面影响。在本例中,MySQL只是提醒我们它将用WHERE子句限制搜索结果集

字段名字段意思字段值
id表格查询的顺序编号降序查看,id相同的从上到下查查看。id可以为null ,当table为( union ,m,n )类型的时候,id为null,这个时候,id的顺序为 m跟n的后面。
select_type查询的方式
table表格名称表名,别名,( union m,n )。
partitions分区名称查询使用到表分区的分区名。
type表连接的类型1. SIMPLE : 简单查询方式们不是呀UNION跟子查询; 2.PRIMARY : 该表格位于最外层开始查询,通常会跟其他查询方式组合; 3.UNION : UNION第一个SELECT 为PRIMARY,第二个以及之后的所有SELECT 为UNION SELECT TYPE ;  4.UNION RESULT : 每个结果集取出来后,会做合并操作,这个操作就是UNION RESULT;
possible_keys可能使用到的索引这里的索引只是可能会有到,实际不一定会用到。
key使用到的索引实际使用的索引。
key_len使用到索引的长度比如多列索引,只用到最左的一列,那么使用到索引的长度则为该列的长度,故该值不一定等于 key 列索引的长度。
ref谓词的关联信息当 join type 为 const、eq_ref 或者 ref 时,谓词的关联信息。
可能为 :null(非 const \ eq_ref \ ref join type 时)、const(常量)、关联的谓词列名。
rows扫描的行数该表格扫描到的行数。这里注意在mysql里边是嵌套链接,所以,需要把所有rows相乘就会得到查询数据行关联的次数
filtered实际显示行数占扫描rows的比例实际显示的行数 = rows * filtered / 100
extra特性使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值