mysql12----explain

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql12----explain相关的知识,希望对你有一定的参考价值。

explain 可以帮助我们在不真正执行某个sql语句时,就执行mysql怎样执行,这样利用我们去分析sql指令.尽量避免全表扫描。

Id:
SELECT识别符。这是SELECT的查询序列号
SELECT * FROM emp WHERE empno = 3 and ename = (SELECT ename FROM emp WHERE empno =  4) \\G;

select_type:
PRIMARY    :子查询中最外层查询
SUBQUERY : 子查询内层第一个SELECT,结果不依赖于外部查询
DEPENDENT SUBQUERY:子查询内层第一个SELECT,依赖于外部查询
UNION   :UNION语句中第二个SELECT开始后面所有SELECT,
SIMPLE
UNION RESULT UNION 中合并结果

Table:显示这一步所访问数据库中表名称

Type:对表访问方式
ALLSELECT * FROM emp \\G,完整的表扫描 通常不好
SELECT * FROM (SELECT * FROM emp WHERE empno = 3) a ;
System,表仅有一行(=系统表)。这是const联接类型的一个特
Const,表最多有一个匹配行

Possible_keys:该查询可以利用的索引,如果没有任何索引显示  null

Key :所选择使用索引

Rows:执行查询时必须检查的行数
EXPLAIN SELECT * FROM emp WHERE empno < 50 \\G;
EXPLAIN SELECT * FROM emp WHERE empno = 50 \\G;

Extra:查询细节信息
No tables :没查表
Using filesort  
当Query中包含 ORDER BY 操作,而且无法利用索引完成排序,
 Impossible WHERE noticed after reading const tables: MYSQL Query Optimizer
通过收集统计信息不可能存在结果
Using temporary
某些操作必须使用临时表,常见 GROUP BY  ; ORDER BY
Using where
不用读取表中所有信息,仅通过索引就可以获取所需数据;

Key_len :被选中使用索引的索引长度

 

以上是关于mysql12----explain的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段