explain:查询查询性能或者需要查看使用索引状态

一、type:连接类型  最关键的一列  效率(const>eq_ref>ref>range>index>all)

1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref)

2、eq_ref    主键或者唯一索引

3、ref   非唯一索引(主键也是唯一索引)

4、range  索引的范围查询

5、index  (type=index extra = using index 代表索引覆盖,即不需要回表)

6、all 全表扫描(通常没有建索引的列)

二、key_len

索引的长度,在不损失精度的情况下越短越好

三、ref

四、rows (内循环的次数)

五、extra

重要的几个

1、using temporary(组合查询返回的数据量太大需要建立一个临时表存储数据,出现这个sql应该优化)

2、using where (where查询条件)

3、using index(判断是否仅使用索引查询,使用索引树并且不需要回表查询)

4、using filesort(order by 太占内存,使用文件排序)

了解的几个

1、const row not found(据说是当表为空的时候展示,我用了个空表explain之后发现extra列是空值)

2、deleting all rows (MYISAM存储引擎快速清空表)

3、first_match(select * from a where name in(select a_name from B) ,B中有n条记录都记录了同一个a_name,每个a_name都只会匹配一次。exist也有同样的效果)

4、impossible having, impssible where  (错误的having 和where如,where 1<0)

5、Impossible WHERE noticed after reading const tables(如 where id =1 and name = "temp",表中不存在id=1并且name=temp的记录)

附带一个详细的extra链接:https://blog.csdn.net/poxiaonie/article/details/77757471

mysql执行计划 const eq_ref ref range index all的更多相关文章

  1. mysql explain22222 system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

    MySQL性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一过程,希望能够对您有所帮助. .使用explain语句去查看分析结果 如explain ...

  2. MySQL执行计划extra中的using index 和 using where using index 的区别

    本文出处:http://www.cnblogs.com/wy123/p/7366486.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  3. MySQL 执行计划详解

    我们经常使用 MySQL 的执行计划来查看 SQL 语句的执行效率,接下来分析执行计划的各个显示内容. EXPLAIN SELECT * FROM users WHERE id IN (SELECT ...

  4. MySQL执行计划之EXPLAIN基本解释说明

    一.EXPLAIN使用潜规则 explain + sql语句 例如: EXPLAIN SELECT * FROM `t_user`; 二. 表头字段详解 (1) id-----> 表的读取顺序 ...

  5. Mysql执行计划(大章)

    Mysql的执行计划 执行计划是啥? 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理你的SQL语句的.分析你的查询语句或者表结构的性能瓶颈 语法 explain ...

  6. type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。 作者:高

    MySQL EXPLAIN详解 - 简书 https://www.jianshu.com/p/ea3fc71fdc45 type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: syst ...

  7. MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

      关于如何理解MySQL执行计划中Extra列的Using where.Using Index.Using index condition,Using index,Using where这四者的区别 ...

  8. MySQL执行计划解读

    Explain语法 EXPLAIN SELECT …… 变体: 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得 ...

  9. mysql执行计划

         烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至关重要.下面我简单讲讲mysql的执行计划,只列出了一些常见的情况, ...

随机推荐

  1. bzoj 3012: [Usaco2012 Dec]First! Trie+拓扑排序

    题目大意: 给定n个总长不超过m的互不相同的字符串,现在你可以任意指定字符之间的大小关系.问有多少个串可能成为字典序最小的串,并输出这些串.n <= 30,000 , m <= 300,0 ...

  2. keepalived基本应用解析

    原地址:http://blog.csdn.net/moqiang02/article/details/37921051 概念简单认知: Keepalived:它的诞生最初是为ipvs(一些服务,内核中 ...

  3. Azure xplate cli创建虚拟机

    Azure的管理工具多种多样.其中Portal和PowerShell是经常使用的. 但用MAC和Linux的同学最喜欢的还是Bash环境. Azure也提供了跨平台的命令行工具:Azure xplat ...

  4. MFC中如何不使用Unicode字符集

    命令窗口:调试->属性-> 把字符集设置为:未设置

  5. 批量创建10个系统帐号tianda01-tianda10并设置密码

    #.添加用户 useradd tianda01 #.非交互式给密码 echo "pass"|passwd --stdin tianda #.- 加0思路 ()..} () #随机密 ...

  6. js---数组习题---

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. day18-事务与连接池 4.事务特性

  8. 单片机CY与OV的区别

    CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0 OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数 ...

  9. 7.26实习培训日志-Oracle SQL(二)

    Oracle SQL(二) 条件表达式 CASE 语句 或者DECODE 函数,两者均可实现 IF-THEN-ELSE 的逻辑,相比较而言,DECODE 更加简洁 SELECT last_name , ...

  10. Access denied for user 'xxx'@'localhost' 问题的解决方法

    使用SpringMvc + Mybatis + Mysql搭建的架构,调试时出现了以下错误: HTTP Status 500 - Request processing failed; nested e ...