possible_keys    ------   显示可能应用在这张表的索引,一个或多个

          查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被实际查询使用

key   ------   实际使用的索引。如果为NULL,则没有使用索引

     查询中若使用了 覆盖索引,则该索引和查询的select字段重叠

       select 字段可以是索引的一部分,即索引中的字段可以将要查询的字段覆盖(是select后面的字段,不是where后面的字段)

key_len   ------   表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度,在不损失精度的情况下,长度越短遇到越好

          key_len 显示的值为索引字段的最大可能长度,并非实际使用长度,

       即key_len是根据定义计算而得,不是通过表内检索出的

rows   ------   根据表统计信息及索引选用情况,大致估算出找到所需的记录需要读取的行数

Extra   ------   包含不适合在其他列中显示但十分重要的额外信息

  1.Using filesort  说明mysql会对数据使用一个外部的索引序列,而不是按照表内的索引顺序进行读取

  MySQL无法利用索引完成的排序操作称为 ‘文件排序’,(需要避免)

  2.Using temporary  使用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于排序order by和分组查询group by

    一般使用排序order by和 分组查询 group by 这种需要使用到索引排序的功能的时候,

    要按照创建索引时的个数和顺序来,否则很容易产生文件内排序 和 临时表 ,影响性能

    为什么要按照这个索引的个数和顺序来:一个索引,创建一棵树,如果是联合索引,第二列会放在第一列后面

    第二列也做了排序,首先根据第一列排序的结果,在第一列一样的情况下,第二列再排序

    如:A = 22  AND B = 33

    你假设一下 C = A*1000 + B,然后根据C做BTREE,以A先放,A相同的情况下按B的顺序放

    存的时候 A 先 存,确定了A的位置之后,再存B;;查的时候,也要先有A,有了A的准确位置,才能拿到B

  

  Using index   ------   表示相应的select 操作中使用了覆盖索引(Covering Index),避免访问了表的数据行,效率不错

             如果同时出现using where ,表明索引被用来执行索引键值的查找

             如果没有同时出现 using where,表明索引用来读取数据而非执行查找动作

  Using where   ------   表明使用了 where 过滤

  Using join buffer   ------   使用了连接缓存

  impossible where   ------   where 子句的值总是 false,不能用来获取任何元祖

  select tables optimized away   ------

  distinct   ------   优化 distinct 操作,在找到第一行匹配的元组后即停止找同样值的动作

    

7.使用EXPLAIN 来分析SQL和表结构_2的更多相关文章

  1. 7.使用EXPLAIN 来分析SQL和表结构_1

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

  2. SQL Server 一句Sql把表结构全部查询出来

    --一句Sql把表结构全部查询出来 SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colo ...

  3. sql复制表结构,复制表内容语句

    sql复制表结构,复制表内容语句 select * into b from a where 1<>1 select top 0 * into b from a insert into a ...

  4. SQL server 表结构转Oracle SQL脚本

    SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...

  5. 使用explain来分析SQL语句实现优化SQL语句

    用法:explain sql 作用:用于分析sql语句 mysql> explain select * from quser_1 where loginemail = "quctest ...

  6. oracle用EXPLAIN PLAN 分析SQL语句

    EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及 ...

  7. sql复制表结构及复制表数据

    一.复制表结构 假设我们有一个数据表Person,有Id,FirstName,LastName,Weight,Height5个列,表结构可以参考这一篇.现在我们想创建一个新表叫People,表结构和P ...

  8. sql 查看表结构

    sqlserver 查看表结构 exec sp_help @TableName --得到表信息.字段,索引.constraint. exec sp_pkeys @TableName --得到主键. e ...

  9. SQL复制表结构或表数据

    需求: 软件开发过程中,一般会部署两个数据库:一个测试数据库提供给开发和测试过程使用:一个运维数据库提供上线使用.当需求变化需增加表时,会遇到数据库表结构或表数据同步的问题,这时就要复制表结构或表数据 ...

随机推荐

  1. 09 Flutter底部Tab切换保持页面状态的几种方法

    IndexedStack:保此所有页面的状态: AutomaticKeepAliveClientMixin:保此部分页面的状态: 修改的页面代码: 页面效果: Tabs.dart import 'pa ...

  2. [Bayes] *Bayesian Classifier for Face Recognition

    Bayesian在识别领域的贡献,着实吸引人 阅读笔记 Gabor特征 (简介,另单独详述) 通过上面的分析,我们知道了,一个Gabor核能获取到图像某个频率邻域的响应情况,这个响应结果可以看做是图像 ...

  3. Java NIO 学习笔记 读写结合补充

    小练习:nio读写文件,将fileread中的内容读取到filewrite中 try { //创建输入通道 FileInputStream fis = new FileInputStream(&quo ...

  4. JAVA 基础编程练习题36 【程序 36 移动位置】

    36 [程序 36 移动位置] 题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 package cskaoyan; public class cskao ...

  5. RocketMQ采坑记

    先来一篇解释比较多的实例 https://www.cnblogs.com/super-d2/p/4154541.html No route info of this topic, PushTopic ...

  6. SpringBoot: 10.整合mybatis(转)

    需求:通过使用 SpringBoot+SpringMVC+MyBatis 整合实现一个对数据库中的 t_user 表的 CRUD 的操作 1.创建maven项目,添加项目所需依赖 <!--spr ...

  7. sonar:sonarqube6.7.6与mysql5.7版本不匹配

    问题 更换sonarqube的数据库为mysql后,启动sonarqube,提示Database was upgraded to a more recent of SonarQube. 解决: 将so ...

  8. Oracle GoldenGate OGG管理员手册

    第一章 系统实现简述 前言 编写本手册的目的是为系统管理员以及相关操作人员提供 Oracle  Goldengat  软 件的日常维护和使用的技术参考: 3 ORACLE 第二章 OGG 日常维护操作 ...

  9. JKD1.8新特性

    1.Optional类 Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包 含对象是否为空,isPresent方法返回 ...

  10. Centos7 yum源配置及关闭防火墙

    清理源 #yum clean all更新源缓存 #yum makecache更新源 #yum update 设置主机名: #hostnamectl set-hostname 查看防火墙状态 #syst ...