ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySql- Explain

2022-09-10 19:01:32  阅读:234  来源: 互联网

标签:UNION Explain MySql 查询 索引 使用 where id


Explain语句可以查看SQL的执行情况,根据执行情况进行优化。

1. id

id查询的标识符,几个查询几个id。NULL表示引用其它行的结果。id越大执行优先级越高

2. select_type

  1. SIMPLE: 简单查询
  2. PRIMARY: 最外层查询
  3. UNION: 使用union时第二个查询和之后的查询的select_type会被标记为UNION
  4. UNION RESULT
    如果是union,最后对结果去除的操作的select_type会被标记为UNION RESULT
    如果是union all不存在id为NULL的额外一行,也就不存在select_type为UNION RESULT的行
  5. SUBQUERY
    子查询
  6. DERIVED
    派生, from里的select,并不一定有

3. table

访问哪一个表,从哪一个表里进行查询

4. partitions

当前查询匹配记录的分区,未分区的表返回null

5. type

连接类型,决定了sql的执行速度

  1. system:const的特例,

  2. const: 针对主键或唯一索引等值查询扫描,最多返回一行数据,

  3. eq_ref:
    唯一性索引扫描,对于每个索引键表中只有一条记录与之匹配
    当使用了索引的全部组成部分,并且索引是PRIMARY 或 UNIQUE NOT NULL时才会使用

  4. ref
    非唯一性索引扫描,返回匹配某个值的所有行,
    通过索引查找结果,但是有多个匹配行

  5. range
    范围查找,使用索引

  6. index
    扫描全部索引和ALL相比只从索引读取

  7. ALL全表扫描
    遍历全表

4. possible_keys,Key

possible_keys查询可能用到的索引,但不一定被使用
Key实际使用的索引
如果Key为Null,则没有使用索引
如果是索引覆盖即通过索引就查询到了相应的值,则possibile为Null,使用的索引在key中

5. key_len

索引使用的字节数,查询中使用的索引最大长度,长度越长精度越高效率越低,长度越短效率越高,但精度越低。是一个预估值

6.ref

where或join中与索引比较的参数,常见的有const(常量),func(函数)、字段名

7. rows, filtered

rows预估需要扫描的行数,越小越好
filtered:符合查询条件的数据百分比,最大为100,

8. Extra

额外信息

  1. using where
    使用了where但没使用索引,有时候使用了索引也使用了where也有,比如id的例子中,Primary的那个查询中使用了索引也有where。

  2. Using index索引覆盖

  3. Using filesort 使用外部排序,而不是按照表内的索引顺序读取, 可能需要优化

  4. using temporary
    使用了临时表

  5. using join buffer
    join时没有用到索引,使用了连接缓存

  6. using index condition
    使用索引下推,查询的列有非索引列,但先判断索引条件以减少磁盘io。
    实际使用的时lnam的索引但是fnam不再lname的索引中。


使用all_name索引,但是又查询了title列,title列不在索引里。

标签:UNION,Explain,MySql,查询,索引,使用,where,id
来源: https://www.cnblogs.com/baiyutang7/p/16678016.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有