Explain使用简介
来源:互联网 发布:炒股软件排名 编辑:程序博客网 时间:2024/06/07 03:44
Explain使用简介
什么是explain
explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL。分析你的查询语句或是表结构性能瓶颈。
如何使用
explain SQL语句
返回的内容:
(1) id: select 查询的序列号,包含一组数字,表示查询中select子句或操作表顺序。
id相同,执行顺序由上至下。
id不同,如果是子查询,id序号会递增,id值越大优先级越高,越先执行。
id相同相同不同,id如果相同,可以认为是一组,从上往下顺序执行,在所有组中,id值越大优先级越高,越先执行。
(2) select_type 查询类型,主要用于区别普通查询,联合查询,子查询等复杂查询
主要包含:SIMPLE简单的select查询
PRIMARY查询中包含子查询最外层被标记。
SUBQUERY子查询
DERIVED衍生
UNION第二个select出现在UNION后被标记为UNION
UNION RESULT从UNION表获取结果的SELECT
(3) table 表名
(4) type 显示查询使用了何种类型,从最好到最差依次是: system>const>eq_ref>ref>range>index>All
system:表中只有一行数据(等于系统表) 是const类型特例,平时基本不会出现。
const:表示通过索引一次就找到,如将主键至于where语句后,mysql可以将查询转换为一个常量。
eq_ref:用索引进行扫描只有一条记录与之匹配。
ref:用索引进行扫描返回匹配某个单独值得所有行。
range:只检索给定范围的行,使用索引来选择行。
index:全索引扫描。
All:全表扫描。
(5)possible_keys 查询语句中可能使用到的索引,但不一定被查询实际使用。
(6)key 实际使用的索引,如果为null,则没有使用索引。查询中若使用覆盖索引,则该索引仅出现在key列中。
(7) key_len 索引字段的最大可能长度,并非实际使用长度。在不丢失精度情况下,长度越短越好。
(8) ref 显示哪一列索引被使用,哪些列或者常量用于查找索引列上的值。
(9) rows 大致估算出找出需要的数据所需要读取表中行数。越小越好。
(10) Extra 包含不适合在其他列显示,但比较重要的信息。
总结:能干什么
- 表的读取顺序
- 数据读取操作的操作类型
- 那些索引可以使用
- 那些索引被实际使用
- 表之间的引用
- 每张表有多少行被优化器查询
- Explain使用简介
- 使用explain
- oracle explain plan结果简介
- MYSQL的explain工具简介
- MYSQL之“EXPLAIN语句简介”
- Explain Plan 使用
- oracle EXPLAIN的使用
- MySQL Explain 的使用
- explain的使用
- 使用Explain分析SQL
- 使用Explain分析SQL
- 单独使用explain plan
- mysql Explain使用解析
- MySQL Explain的使用
- 查询规划(使用EXPLAIN)
- 使用explain优化sql
- mysql explain使用
- mysql优化-explain使用
- linux学习小记01-linux从入门到精通系统管理篇,第5章shell的基本命令
- SQLite3 修改字段属性
- Python利用dict实现switch
- Freemarker 使用
- POJ 2001-Shortest Prefixes
- Explain使用简介
- mysql json类型,java查询出来乱码
- adnroid studio错误提示显著
- Python 函数修饰符(装饰器)的使用
- 程序3
- java程序员从笨鸟到菜鸟之(三十一)集合之TreeMap以及集合嵌套
- 怎样面对对价格敏感的客户
- mysql 如何修改、添加、删除表主键
- Selenium--Chrome获取Xpath