mysql执行计划,搞定type和extra就能优化大部分sql了。type为主,extra为辅。

type:

system表只有一行,MyISAM引擎。

const常量连接,表最多只有一行匹配,通用用于主键或者唯一索引比较时

eq_ref每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引

ref如果每次只匹配少数行,那就是比较好的一种,使用=或<=>,可以是左覆盖索引或非主键或非唯一键

fulltext全文搜索

ref_or_null与ref类似,但包括NULL

index_merge表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。这个比较复杂,目前的理解是合并单表的范围索引扫描(如果成本估算比普通的range要更优的话)

unique_subquery在in子查询中,就是value in (select…)把形如select unique_key_column的子查询替换。PS:所以不一定in子句中使用子查询就是低效的!

index_subquery同上,但把形如”select non_unique_key_column“的子查询替换

range常数值的范围

index索引树扫描。a.当查询是索引覆盖的,即所有数据均可从索引树获取的时候(Extra中有Using Index);b.以索引顺序从索引中查找数据行的全表扫描(无 Using Index);c.如果Extra中Using Index与Using Where同时出现的话,则是利用索引查找键值的意思;d.如单独出现,则是用读索引来代替读行,但不用于查找

all全表扫描(full table scan)

extra:

Using index索引最优

Using index condition命中索引,但是查询的列不在索引树中,导致需要查找实际行记录,看情况优化

Using index where只有where,可能没走索引,结合type看情况优化

Using indexfilesort排序优化order by,加索引,需要优化

Using temporary临时表,需要优化

Using join buffer (Block Nested Loop)两个关联表join,关联字段均未建立索引,需要优化

null为空时需要去type找原因

mysql 执行计划extra_mysql执行计划explain type和extra相关推荐

  1. mysql 执行计划extra_MySQL执行计划extra中的using index 和 using where using index 的区别...

    www.linuxidc.com/Linux/2017-- mysql执行计划中的extra列中表明了执行计划的每一步中的实现细节,其中包含了与索引相关的一些细节信息 其中跟索引有关的using in ...

  2. mysql之执行计划——explain中的extra详解

    之前一直对explain中的extra和type两个类型混淆.其实两者完全不同,type列和覆盖索引毫无关系,它只是表示这个查询访问数据的方式,或者说是MySQL查询行的方式. 我们使用一个例子来讲解 ...

  3. MySQL优化篇:执行计划explain中key_len计算方式

    概述 key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在使用联合索引的时候,判断该索引有多少部分被使用到非常重要. key_len的长度计算公式很重要(key_len越小, ...

  4. MySQL索引管理及执行计划

    MySQL索引管理及执行计划 第1章 索引介绍: 索引是对数据库表中一列或者多列 的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,如果想按特定职员的姓名来查找,则与他在表中搜索所有的 ...

  5. MySQL性能优化-根据执行计划进行性能优化

    2019独角兽企业重金招聘Python工程师标准>>> 1. 使用执行计划explain命令分析 在要运行的sql前面加上explain就可以得到执行计划如下表: 在explain后 ...

  6. MySQL 的索引、执行计划、优化器算法

    SQL处理流程 INDEX 索引 索引介绍 索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引擎实现: 索引相当于一本书的目录,可以优化查询. 优点: 索引 ...

  7. MySQL慢查询与执行计划分析

    MySQL慢查询与执行计划分析 慢查询分析 执行计划分析 表结构分析 慢查询分析 查看是否开启慢日志: show variables like 'slow_query_log%'; +-------- ...

  8. mysql的索引和执行计划

    一.mysql的索引 索引是帮助mysql高效获取数据的数据结构.本质:索引是数据结构 1:索引分类 普通索引:一个索引只包含单个列,一个表可以有多个单列索引. 唯一索引:索引列的值必须唯一 ,但允许 ...

  9. Mysql 慢查询 Sql执行计划 SQL每阶段的耗时

    文章目录 前言 一.慢查询的相关参数 slow_query_log 是否开启了慢查询 开启慢查询 slow_query_log_file 指定慢查询日志的存储路径及文件 long_query_time ...

最新文章

  1. 使用python愉快地做高数线代题目~
  2. latex Label ' ' multiply defined
  3. 程序员的量化交易(34)--QuantConnect_Lean如何定义Indicator指标2
  4. OpenGL编译错误的解决
  5. c语言数字的拆解_C语言解决变态推理题
  6. 在Windows上使用VSCode远程链接到Linux上开发并调试C++程序
  7. 我擦!没想到你们都是这样 “劝退” 员工的!
  8. [Lydsy1805月赛] 对称数
  9. 字符串分割--java中String.split()用法
  10. 使用Arcpy进行数据批处理-批量裁剪
  11. ucinet数据集格式
  12. 57之最,来找找你的之最吧
  13. python爬取网易云音乐 专辑图片+歌词
  14. 谷歌2018博士生奖研金名单出炉,清华、上交大多人入选
  15. 如何搭建一个自己的网站-服务器篇
  16. HP CQ40安装XP详细步骤(刷BIOS)
  17. vue+element-ui
  18. 北京尚学堂python培训到底怎么样
  19. 关于m++和++m的那些事
  20. 2019—2020学年度第二学期期中考试高一年级数学试卷质量分析

热门文章

  1. 分割法和填补法_“聚合”法与“分割”法
  2. 学习记录 php,PHP进阶篇学习专用记录
  3. 云麦小米华为体脂秤怎么样_测评华为智能体脂秤,比小米智能体重秤贵30元到底差别在哪里?...
  4. 计算机高办报名时间,前方高能!计算机信息技术证报名入口、考试时间已发布...
  5. oracle数sqlplus,sqlplus查询oracle数据库数据容量
  6. 在java中字符流怎么复制_Java 使用字符流拷贝数据
  7. V210 UART 整体流程
  8. MTU MSS 详解记录
  9. winCE下Unicode编码
  10. 河北2018年职称计算机开始,2018河北职称计算机考试操作题答案(8页)-原创力文档...