explain SELECT * from bid_result;

explain SELECT * from bid_result WHERE id = 24

主要字段意思

1、select_type

      示查询中每个select子句的类型

(1) SIMPLE(简单SELECT,不使用UNION或子查询等)

(2) PRIMARY(子查询中最外层查询,查询中若包含任何复杂的子部分,最外层的select被标记为PRIMARY)

(3) UNION(UNION中的第二个或后面的SELECT语句)

(4) DEPENDENT UNION(UNION中的第二个或后面的SELECT语句,取决于外面的查询)

(5) UNION RESULT(UNION的结果,union语句中第二个select开始后面所有select)

(6) SUBQUERY(子查询中的第一个SELECT,结果不依赖于外部查询)

(7) DEPENDENT SUBQUERY(子查询中的第一个SELECT,依赖于外部查询)

(8) DERIVED(派生表的SELECT, FROM子句的子查询)

(9) UNCACHEABLE SUBQUERY(一个子查询的结果不能被缓存,必须重新评估外链接的第一行)

2、type

对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。

常用的类型有: ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)

ALL:Full Table Scan, MySQL将遍历全表以找到匹配的行

index: Full Index Scan,index与ALL区别为index类型只遍历索引树

range:只检索给定范围的行,使用一个索引来选择行

ref: 表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值

eq_ref: 类似ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,简单来说,就是多表连接中使用primary key或者 unique key作为关联条件

const、system: 当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量,system是const类型的特例,当查询的表只有一行的情况下,使用system

NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。

3、possible_keys

指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用(该查询可以利用的索引,如果没有任何索引显示 null)

该列完全独立于EXPLAIN输出所示的表的次序。这意味着在possible_keys中的某些键实际上不能按生成的表次序使用。
如果该列是NULL,则没有相关的索引。在这种情况下,可以通过检查WHERE子句看是否它引用某些列或适合索引的列来提高你的查询性能。如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询

4、Key

key列显示MySQL实际决定使用的键(索引),必然包含在possible_keys中

如果没有选择索引,键是NULL。要想强制MySQL使用或忽视possible_keys列中的索引,在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。

5、key_len

表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度(key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的)

不损失精确性的情况下,长度越短越好

6、ref

列与索引的比较,表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值

7、rows

估算出结果集行数,表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数

8、Extra

该列包含MySQL解决查询的详细信息,有以下几种情况:

Using where:不用读取表中所有信息,仅通过索引就可以获取所需数据,这发生在对表的全部的请求列都是同一个索引的部分的时候,表示mysql服务器将在存储引擎检索行后再进行过滤

Using temporary:表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询,常见 group by ; order by

Using filesort:当Query中包含 order by 操作,而且无法利用索引完成的排序操作称为“文件排序”

Using join buffer:改值强调了在获取连接条件时没有使用索引,并且需要连接缓冲区来存储中间结果。如果出现了这个值,那应该注意,根据查询的具体情况可能需要添加索引来改进能。

sql慢查询问题排查相关推荐

  1. SQL 审核查询平台

    ◆一.开源项目简介 Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多种数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能. ◆二.开源协议 使用Apa ...

  2. Mysql之慢查询的排查及其优化

    文章目录 一:建造海量数据插入数据库 1:建造表 2:插入200万条数据 二:排查慢查询的sql 前言: 1:查看数据库服务慢查询日志是否开启 2:开启慢查询日志 3:查看慢查询阈值(超过这个时间sq ...

  3. Oracle 查询慢排查

    生产环境Oracle 查询慢排查 现象是生产环境Oracle rac有一个查询很慢(比较少用),查询大概10秒钟才返回,但是有时又很快,而且其他的查询都没问题. 但是把sql语句单独在pl/sql 上 ...

  4. mysql 慢查询原因 排查 优化

    慢查询原因 一条sql偶尔查询很慢 原因 数据库更新频繁,redo log buf很快满了,只能先暂停其他操作,将redo log buf同步写到磁盘上时,这时候查询只能等待写磁盘完成了. 查询涉及到 ...

  5. sql子查询示例_SQL更新查询示例说明

    sql子查询示例 In this article, we're going to learn how to use the SQL update statement - what it is, wha ...

  6. R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句

    R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录

  7. SQL高级查询(层次化查询,递归)

    SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...

  8. 一步一步学linq to sql(四)查询句法

    select 描述:查询顾客的公司名.地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName ...

  9. Sql语句查询 显示序号

    怎么样用SQL语句查询出来带有序号,不是我们用递增所带的ID号 就是按行数用数字显示出来 序号,id,userid 1 5 aaa 2 6 bbb 3 8 ccc 4 9 ddd 5 17 eee 类 ...

最新文章

  1. blocked java线程_Java线程状态:BLOCKED与WAITING的区别
  2. java中文getbytes为3,java 中文乱码问题
  3. Latex 算法过长 分页显示方法
  4. JDBC(11)—数据库连接池
  5. rsync的原理和安装使用及配制详解(三)(转)
  6. 12_首页显示热门商品和最新商品
  7. 逆水寒服务器维护公告,逆水寒1月3日更新了什么 逆水寒1月3日更新维护公告
  8. 微博的html,微博输入html
  9. iOS模拟器找不到证书?
  10. 安装的时候出现SPSS中can not create java virtual machine问题怎么办
  11. echarts柱状图显示百分比
  12. 使用flutter控制蓝牙通讯_使用Flutter控制蓝牙通讯
  13. kafka错误代码解释
  14. CTF题库-实验吧(密码学)之综合篇
  15. Struts2的OGNL表达式语言
  16. 360元(含硬盘)!小白二手旧电脑组建超低价NAS记录
  17. 为什么要学习设计模式
  18. 几何重数(geometric multiplicity)与代数重数 (algebraic multiplicity)
  19. 通达信挖掘大牛浮水指标公式源码
  20. 通过实例理解Go逃逸分析

热门文章

  1. NEU(Fst Network Embedding Enhancement via High Order Proximity Approximation)
  2. openssl生成证书
  3. rails再体验(第一个程序)
  4. window.showModalDialog模态对话框 值回传 TreeView无刷新
  5. 【JS】教你如何在对象内任意位置插入任意属性
  6. 解决css中存在的几种兼容性问题
  7. CNN经典模型:GoogLeNet(从Inception v1到v4的演进)
  8. Vue (响应式原理-模拟-1-vue)
  9. 使用C语言----修改密码
  10. 鸿蒙系统的升级名单,定档6月2日!鸿蒙“首批”升级名单公布,共计11款华为机型!...