Explain中的字段

这里写图片描述

1.id:操作表的顺序

根据id的值出现的情况不同,操作表的顺序或者执行select字句的顺序也会有所不同

id值出现的情况执行的顺序
id值相同的时候由上之下执行
id值不同的时候id值越大越是先执行
id值有相同也有不同的时候id值越大的先执行,id值相同的由上之下执行

2.select_type:查询的类型

出现的选项可能有

次序select_type的值说明
1SIMPLE简单查询(不包括子查询或者UNION)
2PRIMARY主查询(查询中包含了复杂查询,在外层的查询就会标记为主查询)
3SUBQUERY子查询(select或者where列表中包含了子查询)
4DERIVE有临时表产生
5UNION如果第二个select出现在union之后,则标记为UNIION;如果union包含在from子句的子查询当中,最外层标记为DERIVE
6UNION RESULT从UNION表中获取的结果的SELECT子句

3.table:显示当前的一行数据是关于哪一个表的


4.partitions


5.type:扫描表的类型
性能效果排序如下,ALL表示这全表扫描
system>const>eq_ref_ref>range>index>ALL

次序type的值说明
1system当表只有一行记录时,这是const的特例(没有实际意义)
2const表示通过索引一次就找到了(单表单行,也没有实际意义)
3eq_ref唯一性全表扫描,对于每个索引键,表中都是一条记录与之匹配。常见于主键或者唯一索引扫描
4ref非唯一性索引扫描,他可能会找到多个符合条件的行
5range只检索给定范围的行,使用一个索引来选择行。
6index遍历索引树
7ALL遍历全表

6.possible_keys:显示可能会被应用的索引


7.key:实际上使用到的索引

  1. 如果没有则为null
  2. 如果使用了覆盖索引,则显示覆盖索引

7.key_len:索引使用的字节数


8.ref:索引的引用


9.rows:需要读取的行数

根据表的统计信息和索引的使用来大致估算出找到记录所需要读取的行数。


10.filtered


11.Extra:额外信息

次序type的值说明
1Using filesort文件内排序(Mysql会对数据使用一个外部的索引进行了排序,而不是按照表内的索引顺序进行读取)
2Using temporay产生了临时表(使用了临时表保存临时的数据,常见于order by 和 group by
3Using index使用了覆盖索引
4Using where使用了where进行了过滤
5using join buffer使用了连接缓存
6impossible wherewhere子句的值总是false,不能用来获取任何的元组
7。。。。。
在数据库领域,`EXPLAIN` 是一个非常重要的 SQL 命令,主要用于查询 SQL 语句的执行计划。通过执行 `EXPLAIN` 命令,数据库管理员可以查看数据库查询优化器是如何处理 SQL 语句的,以及数据是如何被检索的。`EXPLAIN` 命令对于优化数据库查询性能至关重要。下面列举了一些 `EXPLAIN` 命令输出中常见的字段及其含义: 1. `id`:查询的标识符。这个值可以用来标识一个查询块,如果多个查询块被合并为一个,则有相同的id。 2. `select_type`:表示查询中每个select子句的类型。常见的值有SIMPLE(简单查询,不包含UNION或子查询),PRIMARY(最外层查询),UNION(UNION中的第二个或随后的查询),SUBQUERY(子查询中的第一个select)等。 3. `table`:显示这一行的数据是关于哪个表的,有时不是具体的表名,可能是别名,或者是derived(衍生表)表示临时表。 4. `type`:表示表的连接类型。常见的连接类型有const、eq_ref、ref、range、index和ALL。性能从好到差依次降低。 5. `possible_keys`:显示可能应用在这张表上的索引。如果为空,表示没有可能的索引。 6. `key`:实际使用的索引。如果没有选择索引,值是NULL。 7. `key_len`:使用的索引的长度。在不损失精确性的情况下,长度越短越好。 8. `ref`:显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。 9. `rows`:根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要读取的行数。 10. `Extra`:包含不适合在其他列中显示但十分重要的额外信息。例如Using index(表示只使用索引,不读取数据行),Using where(表示使用了WHERE条件过滤),Using temporary(表示使用了临时表)等。 了解这些字段可以帮助开发者或数据库管理员理解数据库是如何处理SQL查询的,以及如何调整查询语句来优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值