explain mysql详解
来源:互联网 发布:风险矩阵法由来 编辑:程序博客网 时间:2024/06/03 10:07
explain查优
我自己的有道笔记传送门
id :
Mysql query optimizer选定的执行计划中查询的序列号,表示查询中执行select子句获操作表的顺序,id值越大表示执行的优先级越高,越先被执行,若id相同,则从上之下依次执行
select_type :
simple:最简单的查询语句,不设计到其他的关联查询等。
primary:最外层的select查询
union:union中的第二个或随后的select查询,不依赖于外部查询的结果集
dependent union:union中的第二个或随后的select查询,依赖于外部查询的结果集
subquery:子查询中的第一个select查询,不依赖于外部查询的结果集
dependent subquery:子查询中的第一个select查询,依赖于外部查询的结果集
derived:用户from子句中有子查询的情况,mysql会递归执行这些子查询,把结果放在临时表中
uncacheable subquery:结果集不能被缓存的子查询,必须重新为外层查询的每一行进行评估
uncacheable union:union中的第二个或随后的select查询,数据不可缓存的子查询
table:
输出行所引用的表
type:
system:表仅有一行记录,是const中的一个特例(实际工作不存在)
const:const用于常数值比较primary key时,当查询的表仅有一行时,会出现system
eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配,常见于主键或唯一索引扫描
ref:非唯一性索引扫描,返回匹配某个参数的多行记录。
range:扫描部分索引,缩小索引的部分,始于索引的一端终于另一端,常适用于between..and.. < > in等
index:扫描全表,但扫描的是索引,非所有数据
all :扫描全表
possible_keys:
在扫描的时候,能使用的索引。
key:
在扫描的时候,使用到的索引。与possible_keys结合,有可能possible_keys存在,key存在,也有可能possible_keys不存在,key存在。也有可能key不存在,若possible_keys存在,key不存在,需检查索引是否失效
key_len:
使用的索引的字节长度,在精度不受影响的情况下,长度越小越好。
ref:
显示哪个字段或常数与key一起被使用。
rows:
表示这个数需要遍历多少行数据才能查询的到
Extra:
包含不适合在其他列中显示但十分重要的额外信息
Only index,这意味着信息只用索引树中的信息检索出的,这比扫描整个表要快。
using where是使用上了where限制,表示MySQL服务器在存储引擎受到记录后进行“后过滤”(Post-filter),如果查询未能使用索引,Using where的作用只是提醒我们MySQL将用where子句来过滤结果集。
impossible where 表示用不着where,一般就是没查出来啥。
Using filesort(MySQL中无法利用索引完成的排序操作称为“文件排序”)当我们试图对一个没有索引的字段进行排序时,就是filesoft。它跟文件没有任何关系,实际上是内部的一个快速排序。
Using temporary(表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询),使用filesort和temporary的话会很吃力,WHERE和ORDER BY的索引经常无法兼顾,如果按照WHERE来确定索引,那么在ORDER BY时,就必然会引起Using filesort,这就要看是先过滤再排序划算,还是先排序再过滤划算。
阅读全文
0 0
- Mysql Explain 详解
- Mysql Explain 详解
- Mysql Explain 详解[强烈推荐]
- Mysql Explain 详解
- Mysql Explain 详解[强烈推荐]
- Mysql Explain 详解[强烈推荐]
- Mysql Explain 详解[转载]
- Mysql Explain 详解
- Mysql Explain 详解
- Mysql Explain 详解
- Mysql Explain 详解
- mysql explain 详解
- Mysql Explain 详解
- MySQL EXPLAIN 详解
- 【转】Mysql Explain 详解
- Mysql Explain 详解
- Mysql Explain 详解
- Mysql Explain 详解
- 【POJ】2362 Square(DFS)
- 完整css选择器总结
- 1010:“水仙花数”问题1
- libsvm正则化和liblinear正则化的区分
- 我的工作——认知
- explain mysql详解
- Mybatis的<where><foreach><set><trim>等标签详解
- banner图片轮播
- lua解析树形字符串拼接问题
- shell中各种括号的作用()、(())、[]、[[]]、{}
- oracle 中translate的基本用法
- Java 在给定路径上创建文件,所在文件夹不存在时,如何正确创建。
- 邮票分你一半小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明。每张邮票上都有分值,他们想把这些邮票分成两份,并且使这两份邮票的分值和相差最小(就是小珂得到的邮票分值和与小明的差值最小),现在每张
- MFC中GetDlgItemInt()方法的疑惑与使用总结