mysql 查询优化 ~explain解读之extra解读
一 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解读的更多相关文章
- mysql 查询优化 ~explain解读之type的解读
一 简介:今天咱们来聊聊explain中type的相关解读 二 类型: system: 表中只有一条数据. 这个类型是特殊的 const 类型. const: 针对主键或唯一索引的等值查询扫描, 最 ...
- mysql 查询优化 ~explain解读之select_type的解读
一 简介:今天咱们来聊聊explain的select_type 二 类型 (1)SIMPLE 简单的SELECT语句(不包括UNION操作或子查询操作) (2)PRIMARY/UNION PRIMAR ...
- mysql 查询优化 ~ explain与索引失效
一 explain 1 扫描行数根据的是表的统计元数据 2 索引的元数据具体指的就是show index from查到的索引的区分度,索引的区分度越高越好 3 表的元数据是定期收集,所以可能不 ...
- mysql学习-explain中的extra
覆盖索引就是创建的索引和查询的字段正好个数顺序一致 using filesort:mysql使用了一个外部索引 ,而非表内索引顺序进行访问,,mysql无法利用索引完成的排序操作称为文件索引,如果你创 ...
- MySQL查询优化之explain的深入解析
在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...
- MySQL查询优化之explain详解
MySQL explain命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: ...
- MySQL查询优化之explain
在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...
- MySQL SQL Explain输出学习
MySQL的explain命令语句提供了如何执行SQL语句的信息,解析SQL语句的执行计划并展示,explain支持select.delete.insert.replace和update等语句,也支持 ...
- 详解MySQL中EXPLAIN解释命令
Explain 结果解读与实践 基于 MySQL 5.0.67 ,存储引擎 MyISAM . 注:单独一行的"%%"及"`"表示分隔内容,就象分开“第一 ...
随机推荐
- Linux 4.20内核得到更新,英特尔CPU 性能降低50%
根据HKEPC的报道,Linux近日发布了 4.20 内核的一些漏洞修复更新,更新后可能会出现50% 的性能损失,是今年内所有安装Spectre/Meltdown 修补程式中效能跌幅最大的一次. 据报 ...
- HTML5-表单元素
不是所有的浏览器都支持HTML5新的表单元素,但是可以使用他们,即使浏览器不支持表单属性,仍然可以显示为常规的表单元素 datalist 规定输入域的选项列表 //input的list属性值就是dat ...
- linux-shell系列8 netstat用法
1 查看TCP连接状态 netstat -n|awk '{print $6}'|sort|uniq -c|sort -rn netstat -n|awk '/^tcp/ {++S[$NF]};END{ ...
- zookeeper 四字命令
zookeeper四字命令 ZooKeeper3.4.6支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 te ...
- BZOJ5371[Pkusc2018]星际穿越——可持久化线段树+DP
题目描述 有n个星球,它们的编号是1到n,它们坐落在同一个星系内,这个星系可以抽象为一条数轴,每个星球都是数轴上的一个点, 特别地,编号为i的星球的坐标是i. 一开始,由于科技上的原因,这n个星球的居 ...
- ef group 封装
表达式树,传递 group public class Test<T> where T : class { MoviesEntities db = new MoviesEntities(); ...
- SQL partition (小组排序)
很多时候,我们在SQL中进行数据去重(distinct) 结果发现有2条一样ID,或者name的数据,我们想要最接近的那条数据. 直接看看题目: 原表 select ID,Title,PRICE fr ...
- Tree 菜单 递归
转载:http://www.cnblogs.com/igoogleyou/archive/2012/12/17/treeview2.html 一,通过查询数据库的方法 ID 为主键,PID 表明数据之 ...
- 【转】用宏定义代替printf函数
问题提出 有时候我们想用宏定义来决定是编译debug版本的代码还是release的代码,dubug版本的代码会通过printf打印调试信息,release版本的代码则不会.我们总不能对每一条print ...
- 牛客练习赛 小D的剑阵 解题报告
小D的剑阵 题意链接: https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 现在你有 \(n\) 把灵剑,其中选择第i把灵剑会得到的 \(w_i\) 攻击 ...