一 explain 常用状态

1 using filesort 常见于order by 字段 无法走索引造成,文件排序。需要注意优化,复杂条件可以选择建立联合索引进行优化
2 using join buffer size 常见于join连接,并且连接字段无法走索引时造成,缓存存储记录,BML优化,需要注意优化
3 using tempoary 常见于group by和order by操作,需要形成临时表结果集,需要注意优化
4 using index 覆盖索引,索引列可以覆盖所有的查询字段,不用回表读取数据文件,代表最优
6 Using index condition 应用了mysql的ICP特性
7using where:需要回表操作,会增加IO问题,出现的情况特征
    1 select查询的字段有非辅助索引和主键索引的其他值
    2 select查询的条件有非辅助索引和主键索引的其他值 
    注意点
   1 using where单独出现情况需要回表
 8 using index & using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据
    1 select查询的字段都被(单/联合)索引覆盖,查询的条件只有(单/联合)索引,有一定几率出现联合,还有一定记录出现using index
    注意点
    1 using index & using where 不需要回表

2 两种情况的出现也和索引区分度有很大关系,不过效率肯定比单独出现using where强很多

9 Index Condition Pushdown (ICP)是mysql使用索引从表中检索行数据的一种优化方式
特点
1 ICP的优化策略可用于range、ref、eq_ref、ref_or_null 类型的访问数据方法
2 当 SQL 使用覆盖索引时但只检索部分数据时,ICP 无法使用
3 不支持主建索引的ICP
4 mysql 5.6中不支持分区表的ICP

mysql 查询优化 ~explain解读之extra解读的更多相关文章

  1. mysql 查询优化 ~explain解读之type的解读

    一 简介:今天咱们来聊聊explain中type的相关解读 二 类型: system: 表中只有一条数据. 这个类型是特殊的 const 类型.  const: 针对主键或唯一索引的等值查询扫描, 最 ...

  2. mysql 查询优化 ~explain解读之select_type的解读

    一 简介:今天咱们来聊聊explain的select_type 二 类型 (1)SIMPLE 简单的SELECT语句(不包括UNION操作或子查询操作) (2)PRIMARY/UNION PRIMAR ...

  3. mysql 查询优化 ~ explain与索引失效

    一 explain  1 扫描行数根据的是表的统计元数据  2 索引的元数据具体指的就是show index from查到的索引的区分度,索引的区分度越高越好   3 表的元数据是定期收集,所以可能不 ...

  4. mysql学习-explain中的extra

    覆盖索引就是创建的索引和查询的字段正好个数顺序一致 using filesort:mysql使用了一个外部索引 ,而非表内索引顺序进行访问,,mysql无法利用索引完成的排序操作称为文件索引,如果你创 ...

  5. MySQL查询优化之explain的深入解析

    在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...

  6. MySQL查询优化之explain详解

    MySQL explain命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: ...

  7. MySQL查询优化之explain

    在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...

  8. MySQL SQL Explain输出学习

    MySQL的explain命令语句提供了如何执行SQL语句的信息,解析SQL语句的执行计划并展示,explain支持select.delete.insert.replace和update等语句,也支持 ...

  9. 详解MySQL中EXPLAIN解释命令

    Explain 结果解读与实践   基于 MySQL 5.0.67 ,存储引擎 MyISAM .   注:单独一行的"%%"及"`"表示分隔内容,就象分开“第一 ...

随机推荐

  1. Linux 4.20内核得到更新,英特尔CPU 性能降低50%

    根据HKEPC的报道,Linux近日发布了 4.20 内核的一些漏洞修复更新,更新后可能会出现50% 的性能损失,是今年内所有安装Spectre/Meltdown 修补程式中效能跌幅最大的一次. 据报 ...

  2. HTML5-表单元素

    不是所有的浏览器都支持HTML5新的表单元素,但是可以使用他们,即使浏览器不支持表单属性,仍然可以显示为常规的表单元素 datalist 规定输入域的选项列表 //input的list属性值就是dat ...

  3. linux-shell系列8 netstat用法

    1 查看TCP连接状态 netstat -n|awk '{print $6}'|sort|uniq -c|sort -rn netstat -n|awk '/^tcp/ {++S[$NF]};END{ ...

  4. zookeeper 四字命令

    zookeeper四字命令   ZooKeeper3.4.6支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 te ...

  5. BZOJ5371[Pkusc2018]星际穿越——可持久化线段树+DP

    题目描述 有n个星球,它们的编号是1到n,它们坐落在同一个星系内,这个星系可以抽象为一条数轴,每个星球都是数轴上的一个点, 特别地,编号为i的星球的坐标是i. 一开始,由于科技上的原因,这n个星球的居 ...

  6. ef group 封装

    表达式树,传递 group public class Test<T> where T : class { MoviesEntities db = new MoviesEntities(); ...

  7. SQL partition (小组排序)

    很多时候,我们在SQL中进行数据去重(distinct) 结果发现有2条一样ID,或者name的数据,我们想要最接近的那条数据. 直接看看题目: 原表 select ID,Title,PRICE fr ...

  8. Tree 菜单 递归

    转载:http://www.cnblogs.com/igoogleyou/archive/2012/12/17/treeview2.html 一,通过查询数据库的方法 ID 为主键,PID 表明数据之 ...

  9. 【转】用宏定义代替printf函数

    问题提出 有时候我们想用宏定义来决定是编译debug版本的代码还是release的代码,dubug版本的代码会通过printf打印调试信息,release版本的代码则不会.我们总不能对每一条print ...

  10. 牛客练习赛 小D的剑阵 解题报告

    小D的剑阵 题意链接: https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 现在你有 \(n\) 把灵剑,其中选择第i把灵剑会得到的 \(w_i\) 攻击 ...