EXPLAIN详解

1. 作用:当explain与mysql一起使用时,MySQL会显示来自优化器关于sql执行的信息。即MySQL解释了它将如何处理该语句,包括如何连接表以及什么顺序连接表等。

2. 信息:explain执行计划包含字段信息如下: id  select_type table partitions type possible_keys  key key_len ref row filtered Extra (12个)

3. 详解

id: 表示查询中执行select子句或者操作表的顺序,id的值越大,优先级越高,就越先执行。若id相同,说明优先级相同,执行顺序由上而下,具体顺序由优化器决定。

select_type: 表示select查询的类型,主要用于区分各种复杂的查询。例如 普通查询,联合查询、子查询等。

    a. SIMPLE : 表示最简单的select查询,即在查询中不包括子查询或者union交并差集等操作。

    b. PRIMARY: 当前查询包含任何复杂查询的子部分,最外层查询标记为PRIMARY

    c. SUBQUERY:当select或者where列表中包含了子查询,该子查询标记为SUBQUERY

    d. DERIVED: 表示包含在from子句中的子查询中的select,在from列表中包含的子查询会被标记为DERIVED

    e. UNION: 如果union后边又出现了select语句,则会标记为UNION; 若UNION包含在from子句的子查询中,外层的select会被标记为DERIVED

    f.UNION RESULT: 表示从union的临时表中读取数据。

table: 查询的表名,不一定是真实存在的表,有别名显示别名,也有可能是临时表。

partition: 查询时匹配到的分区信息,对于非分区表值为NULL,当查询的是分区表时,会显示分区表中命中的分区。

type: 查询使用了何种查询,在SQL优化中是非常重要的一个指标。以下性能从好到坏依次是:

       system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all

 

 

参考:https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650129468&idx=2&sn=e23af0b4fe578c51762412ce01dca92c&chksm=f36bd91dc41c500b8c99e8e226d21a83783d6100df3f46c38b3709601d5b4f225969f5076856&mpshare=1&scene=1&srcid=0527mIuIHyaydVVtadeqJWmt&sharer_sharetime=1590584969933&sharer_shareid=4d8fe684ea89f5d31e0a467a3028b407&key=550718b070ec51af7acf5443a326901de07bb0f815d79dabe2cc5f043459001819c476d8792fe37ff522c1a68b8aea3637e263612b6b8dafea26bb23f539cee4c5546a35cc3aee90f47bf308fa10f00d&ascene=1&uin=NzAxOTQ2NDQx&devicetype=Windows+10&version=62080079&lang=zh_CN&exportkey=ASlTmyBehiv7celvGfvAuh0%3D&pass_ticket=fS4ZvhB4H4xGZNqM4vaMFOfFeGjJJYDuUX8id4XT%2FW5ugap2mGUM%2Bo7phQa251gC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值