7、key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。key_len字段能够帮你检查是否充分的利用上了索引。ken_len越长,说明索引使用的越充分。



如何计算:
①先看索引上字段的类型+长度比如int=4;varchar(20)=20;char(20)=20

②如果是varchar或者char这种字符串字段,视字符集要乘不同的值,比如utf-8要乘3,GBK要乘2,

③varchar这种动态字符串要加2个字节

④允许为空的字段要加1个字节

第一组:key_len=age的字节长度+name的字节长度=4+1+(20*3+2)=5+62=67

第二组:key_len=age的字节长度=4+1=5

8、ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。

9、rows:rows列显示MySQL认为它执行查询时必须检查的行数。越少越好!

10、Extra:其他的额外重要的信息。

1、Using filesort

说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL中无法利用索引

完成的排序操作称为“文件排序”。
出现filesort的情况:

优化后,不再出现filesort的情况:

2、Using temporary

使了用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于排序orderby和分组查询group

优化前:

优化后:

3、Using index

Usingindex代表表示相应的select操作中使用了覆盖索引(CoveringIndex),避免访问了表的数据行,效率不错!如果同时出现usingwhere,表明索引被用来执行索引键值的查找;如果没有同时出现usingwhere,表明索引只是用来读取数据而非利用索引执行查找。利用索引进行了排序或分组。

4、Using where
表明使用了where过滤。

5、Using join buffer

6、impossible where
where子句的值总是false,不能用来获取任何元组。

7、select tables optimized away
在没有GROUPBY子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。

在innodb中:

在Myisam中:

MySQL高级---索引优化分析(Explain性能分析 二)相关推荐

  1. Mysql高级 索引优化

    Mysql逻辑架构 Mysql与其他数据库相比有点与众不同,他的架构可以在多种不同的场景中应用并发挥作用,主要体现在存储引擎的架构上,插件式的存储引擎结构将查询处理和其他的系统任务以及数据的存储提取分 ...

  2. MySQL高级-索引优化(超详细)

    性能分析 MySQL Query Optimizer Mysql中由专门负责优化SELECT语句的优化器,主要功能就是通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计 ...

  3. MySQL高级---索引优化分析(Explain性能分析 一)

    一.概念 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的.分析你的查询语句或是表结构的性能瓶颈. 二.用法: Explain+SQL语句. 三. ...

  4. 《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )

  5. MySQL第11天:MySQL索引优化分析之性能分析

    MySQL索引优化分析之性能分析 一.MySQL Query Optimizer 二.MySQL常见瓶颈 三.Explain(执行计划) 1.什么是执行计划?          2.执行计划能干什么? ...

  6. 由浅入深探究mysql索引结构原理_性能分析与优化_由浅入深探究mysql索引结构原理、性能分析与优化...

    由浅入深探究mysql索引结构原理.性能分析与优化 第一部分:基础知识第二部分:MYISAM和INNODB索引结构1, 简单介绍B-tree B+ tree树 2, MyisAM索引结构 3, Ann ...

  7. Mysql 的 Explain性能分析

    Mysql 的 Explain性能分析 概念 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的.分析你的查询语句或是表结构的性能瓶颈. 用法: E ...

  8. MYSQL批量插入数据库实现语句性能分析

    MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( ...

  9. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化

    拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...

最新文章

  1. Tomcat(三):tomcat处理连接的详细过程
  2. c++语言中如何写入文件,C++:在多线程程序中写入文件
  3. python编辑器vim下载_vim做python编辑器
  4. Linux 进程通信fifo,Linux 进程通信之FIFO的实现
  5. oracle 截取时间至小时,如何在pandas中构造/取整到小时的本地化日期时间列
  6. 承接数字油画图稿/线条图定制(出图)业务
  7. 程序员为什么那么难升职
  8. java 中文 音序,java 中文字符串数组按照音序排列
  9. 007-JQuery 筛选
  10. private的使用
  11. linux 命令:yum 详解
  12. c++ HDC 写一个简单的不需要bmp图片的progressbar
  13. win10 安装sudo命令
  14. Intel SGX开发者参考书(五)—— Intel SGX SDK示例代码(一)
  15. C# throw new Exception的使用
  16. Exoplayer的缓存 二 下载服务DownloadService
  17. Windows下快速获取一个文件夹下所有文件的名称列表
  18. 2021-05-31 - Laravel - 搭建开发环境 - 学习/实践
  19. 英文有声读物网站(转贴)
  20. Matlab中的pinv和inv

热门文章

  1. node.js总结--(助你一臂之力,记的点赞哟)
  2. 指示函数(indicator function)含义及word使用
  3. Teradata当年数据仓库的“一哥”为何突然退出中国市场:苦撑了3年,员工早有预料
  4. 【图像分类】基于阈值分类器(BTC)进行高光谱图像分类研究(Matlab代码实现)
  5. element-ui vue vue.runtime.esm.js?2b0e:619 [Vue warn]: Property or method affectWay is not define
  6. 教育学院计算机试卷答案,北京语言大学网络教育学院计算机文化基础(本)模拟试卷(共3份,含答案)...
  7. 树莓派3b+ CENTOS7 制作备份Raspberry Pi树莓派SD卡的img映像文件(不用dd命令)[转载]...
  8. 公司内网外网同时使用
  9. tigase mysql_tigase5.2.3使用mysql5.6出错
  10. 支持向量机算法与实现