`

Mysql执行计划分析

阅读更多

 

 Mysql执行计划分析:

 MySQL执行计划EXPLAIN主要可以通过type来进行分析:

 

 

select_type 表示查询中每个select子句的类型(简单 OR复杂)

 

  a.SIMPLE:查询中不包含子查询或者UNION
  b.查询中若包含任何复杂的子部分,最外层查询则被标记为:PRIMARY
  c.在SELECT或WHERE列表中包含了子查询,该子查询被标记为:SUBQUERY
  d.在FROM列表中包含的子查询被标记为:DERIVED(衍生)
  e.若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在 FROM子句的子查询中,外层SELECT将被标记为:DERIVED
  f.从UNION表获取结果的SELECT被标记为:UNION RESULT

 

 

 

  

 type表示MySQL在表中找到所需行的方式,又称“访问类型”,常见类型如下:(从上至下,效果依次变好)

 

  ALL:Full Table Scan。 index:Full Index Scan。 
  range:索引范围扫描。
  ref :非唯一性索引扫描。
  eq_ref :唯一性索引扫描。
  const,system:将查询转换为一个常量。
  null:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引

 

All :全表扫描,没有用到索引
range:索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行, 常见于between、<、>,IN等的查询
ref: 非唯一性索引扫描,返回匹配某个单独值的所有行。 
eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。
const、system:当MySQL对查询某部分进行优化,并转换为一个常量时, 使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转 换为一个常量。
  system是const类型的特例,当查询的表只有一行的情况下, 使用system。
NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引。

 

 

 

如:explain    select * from account_balance where    userid='123'

 

 

分享到:
评论

相关推荐

    MySQL SQL执行计划分析与优化方案.pptx

    MySQL SQL执行计划分析与优化方案.pptx

    MySQL执行计划的深入分析

    主要给大家介绍了关于MySQL执行计划的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java高级试听课:MySQL 执行计划查看、索引失效分析、加锁分析.txt

    Java高级试听课:MySQL 执行计划查看、索引失效分析、加锁分析

    MySQL SQL执行计划分析与优化.pdf

    MySQL SQL执行计划分析与优化.pdf

    mysql索引和执行计划的使用

    MySQL索引的最佳实践和执行计划的使用分析,包括索引的设计原则,SQL语句的优化原则等

    MYSQL5 LOG 分析工具.rar

    MySQL记录日志查询对于跟踪PHP MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多...重启mysql就可以将数据库所有操作记录下来,为了方便分析,提供一个简单快速的查看器。 打开文件设置执行目录与地址即可

    MySQL中通过EXPLAIN如何分析SQL的执行计划详解

    在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。 下面分别对EXPLAIN命令结果的每一列进行说明: .select_type:表示SELECT的类型,常见...

    Mysql深入探索之Explain执行计划详析

    使用explain关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的,分析你的 select 语句或是表结构的性能瓶颈,让我们知道 select 效率低下的原因,从而改进我们的查询。 explain 的...

    mysql的计划任务与事件调度实例分析

    本文实例讲述了mysql的计划任务与事件调度。分享给大家供大家参考,具体如下: mysql事件是基于预定义的时间表运行的任务,因此有时它被称为预定事件。mysql事件也被称为“时间触发”,因为它是由时间触发的,而不是...

    mysql执行计划id为空(UNION关键字)详解

    本文主要给大家介绍了关于mysql执行计划id为空(UNION关键字)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的 介绍吧 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。例如,我有两个...

    MySQL,通过explain分析低效SQL的执行计划。

    type:MySQL在表中找到所需行的方式,即访问类型。 possible_keys:查询时,可能使用的索引。 key:实际使用的索引。 key_len:使用到索引字段的长度。 rows:扫描行的数量。 Extra:执行情况的说明和描述。  执行...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ │ 4_MySQL索引底层结构和执行计划.mp4 │ │ 5_MySQL索引优化原则.mp4 │ │ 6_MySQL运维常见错误part1.mp4 │ │ 7_MySQL运维常见错误part2.mp4 │ │ ERROR1040_1917970.1.pdf │ │ ERROR1062_1593526.1.pdf ...

    MySQL执行delete误删除数据恢复

    当误执行了 DELETE 命令删除了数据后,可以考虑以下方法进行数据恢复: 立即停止对数据库的写入操作:一旦发现误删,应立即停止对数据库的写入操作,以免新的数据覆盖被删除的数据。 使用备份:如果你有数据库备份...

    mysql 源码分析+mysql-5.0.18的源码

    主要介绍Mysql主要的调用流程,将从代码的角度来看一个从用户发出的"select * from test" SQL命令在服务器内部是如何被执行的。从我个人的经验来看,阅读理解大规模项目的代码最重要的两个方面,一是了解主要的数据...

    分析MySQL中优化distinct的技巧

    通过查看执行计划,也为全索引扫描,sql在执行的时候,会对整个服务器带来抖动; root@db 09:00:12&gt;select count(distinct nick) from user_access; +———————-+ | count(distinct nick) | +———————-+...

    sql和MySQL的语句执行顺序分析

    sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。 一、sql执行顺序 (1)from (2) on (3) join (4) where (5)group by(开始使用select中的别名,后面的语句中都可以使用) (6) avg,...

    MySQL执行状态的查看与分析

    今天小编就为大家分享一篇关于MySQL执行状态的查看与分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    MySQL自整理超全精华版面试八股文

    存储引擎 MyISAM和InnoDB的区别 一条SQL语句在ySQL中如何被执行的? 索引 什么是索引 索引的优缺点 MySQL的索引有哪些? B树和B+树有什么异同?...执行计划分析explain SQL优化 数据库表结构设计优化 大表优化

Global site tag (gtag.js) - Google Analytics