MySQL执行计划各参数比较tips

,还

        在进行sql的执行效率优化过程中,可以根据mysql的执行计划的参数直观地感受优化的效果。在使用navicat对SQL语句进行分析时,可以看到一些参数(如下图所示),那么每个代表什么意思,如何通过这些参数来分析我们的SQL语句的执行效率是否进行了优化,下面我们将对每个参数进行解释,以及它们的值如何进行优化。


下面我们一一解释这些参数的含义以及通过他们的值如何进行SQL的优化判定

一、id

        在 MySQL 的 Explain 执行计划中,每个执行计划节点的 ID 代表着查询语句中涉及的表的执行顺序。当多个表参与查询时,MySQL 会根据查询优化器的规则来确定表的连接顺序,并为每个表分配一个唯一的 id 值。较小的id值在执行计划中先进行处理,较大的id值表示稍后处理,都是1代表从上到下执行。

二、select_type

select_type 列代表了每个表的访问类型,用于表示查询语句中涉及到的表的类型和查询方式。

其中,select_type 列的值有以下几种可能:

  • SIMPLE:表示查询语句中只包含了一个简单的表,没有使用 UNION 或子查询等复杂的查询方式。
  • PRIMARY:表示查询语句中包含多个表,但是查询优化器将该表作为主查询(即外层查询)进行处理。
  • SUBQUERY:表示查询语句中使用了子查询,子查询通常会在主查询之前先执行,并将结果传递给主查询。
  • DERIVED:表示查询语句中使用了派生表(Derived Table),也就是将查询结果保存在临时表中,并在查询中引用该临时表。
  • UNION:表示查询语句中使用了 UNION 操作符,将多个查询结果合并成一个结果集。
  • UNION RESULT:表示查询语句中使用了 UNION 操作符后得到的结果集。
  • DEPENDENT UNION:表示查询语句中使用了 UNION 操作符,并且依赖于外部查询的结果。
  • DEPENDENT SUBQUERY:表示查询语句中使用了子查询,并且依赖于外部查询的结果。
  • MATERIALIZED:表示查询语句中使用了 Materialized subquery,即对于子查询的结果集进行了优化,将其存储在一个临时表中以提高性能。</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值