当前位置: 首页 > news >正文

MySQL中的explain命令

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

概念:

    explain显示了MySQL如何使用索引来处理select语句以及连接表,我们可以根据explain的结果来优化我们的sql。

结果:

	id
	select_type
		说明: 查询的类型
		SIMPLE	普通查询
		
	table
		说明:	扫描的表。
		
	type
		说明:type是一个很重要的指标,type从好到差依次为:
		system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
		
		const	使用唯一索引,扫描一次就找到了对应的记录。
				eg:根据主键查询数据
			
		ref		使用非唯一索引进行扫描。	 
				eg:select * from t_message t where t.owner ='jack@xxx.com'	(注:在owner列上建立了非唯一索引)
		
		range	使用索引进行范围查询,即:在索引列上进行 LIKE、BETWEEN、IN、>= 等操作
				eg:select * from t_message t where t.owner like 'jack%'	(注:在owner列上建立了非唯一索引)
			
		index	按照索引的顺序进行全表扫描。注:index与ALL相比唯一的优势就是:查询出来的数据是按照一定顺序(即:索引的顺序)排列的。
				eg:select * from t_message order by id		(注:id为主键)
		
		ALL		全表(顺序)扫描,即:不使用索引,直接读取表上的数据。
				eg:select * from t_message order by title
				eg:select * from t_message
		
	possible_keys
		说明:可以使用的索引。
		
	key
		说明:实际使用的索引。
		Null	表示没有使用索引。
		PRIMARY	表示使用了主键。
		
	key_len
		说明:实际使用的索引的长度,从这个指标可以判断出复合索引中的哪些列被使用了。
		
	ref			
		const	使用索引进行等值查询。
				eg:select * from t_message where owner='jxn' 		(注:在owner列上建立了索引)
		
	rows
		说明:执行该sql时,MySQL查询了多少行。
		
	Extra
		说明:表示其它的一些信息。
		Using index				只从索引树中查询信息,即该sql只查询索引列的值。
								eg:select owner from t_message				(注:在owner列上建立了索引)
						
		Using index condition	查询非索引列的数据时,查询条件中使用了索引。
						
		Using where				使用了where语句。
		
		Using filesort			排序时没有根据索引来排序。

转载于:https://my.oschina.net/u/1399755/blog/1787165

相关文章:

  • 黑马程序员__用普通类模拟枚举的实现原理
  • 10.3生成器yield\send
  • Web Service中java与.net通信
  • 1050. [HAOI2006]旅行【并查集+枚举】
  • HDU-1421
  • 2251. [2010Beijing Wc]外星联络【后缀数组】
  • Tortoisesvn,鼠标右键菜单中找不到“检出”的处理方法
  • 麻烦大家反馈一下昨天的网站访问速度
  • 网关 Spring-Cloud-Gateway 源码解析 —— 网关初始化
  • shell中quotes的不同作用
  • C/C++入门必备
  • SqlServer在表中插入数据时出现主键冲突问题解决方式
  • 1、告别windows,决定
  • 深入浅出Power Shell——cmd调用PowerShell脚本
  • 专访黄隽实:Stay hungry, Stay foolish!
  • Computed property XXX was assigned to but it has no setter
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascript Math对象和Date对象常用方法详解
  • Javascript设计模式学习之Observer(观察者)模式
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • mongo索引构建
  • MySQL的数据类型
  • overflow: hidden IE7无效
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 代理模式
  • 基于web的全景—— Pannellum小试
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 算法系列——算法入门之递归分而治之思想的实现
  • 听说你叫Java(二)–Servlet请求
  • 通过几道题目学习二叉搜索树
  • 我与Jetbrains的这些年
  • $(function(){})与(function($){....})(jQuery)的区别
  • $GOPATH/go.mod exists but should not goland
  • (13)Hive调优——动态分区导致的小文件问题
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (pojstep1.1.2)2654(直叙式模拟)
  • (补)B+树一些思想
  • (蓝桥杯每日一题)love
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .net framework4与其client profile版本的区别
  • .NET MVC 验证码
  • .NET关于 跳过SSL中遇到的问题
  • .net生成的类,跨工程调用显示注释
  • .Net下的签名与混淆
  • :中兴通讯为何成功
  • @Not - Empty-Null-Blank
  • [ solr入门 ] - 利用solrJ进行检索
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Angular 基础] - 表单:响应式表单