MySQL中explain命令有什么用


这篇文章主要介绍了MySQL中explain命令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。下面来讲讲这个MySQL提供的explain命令:语法:explain SQL语句例如:
执行完毕之后,它的输出有以下字段: id
select_type
table
partitions
type
possible_keys
key
key_len
ref
rows
Extra
要想知道explain命名怎么使用,就必须把这些字段搞清楚
1. id
SELECT查询的标识符, 每个SELECT语句都会自动分配一个唯一的标识符
2. select_type
每个select查询字句的类型,具体类型以及对应作用如下表:3. table
显示这一行的数据是查哪张表的,不过有时短路显示的不是真实的表名。
4. partitions
匹配的分区(这个目前用处不大)
5. type
访问类型,表示MySQL在表中找到所需行的方式,对应的值和解释如下:type作为访问类型,其值代表着当前查询所用的类型,是体现性能的一个重要指标,从表中可以看到,从上到下,扫描表的方式越来越宽,性能也就越来越差,因此,对于一个查询,最好能保持在range级别以上。
6. possible_keys
主动指出查询能用哪个索引在表中找到记录也就是会列出在查询中的字段中有索引的字段,但不一定被查询所用。
7. key
显示再查询中实际使用的索引/键,如果没有索引,则显示NULL。但如果想强制查询中使用或忽视possible_keys列中的索引,则可以在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。
8. key_len
表示索引中使用的字节数。
9. ref
表示哪些列或常量被用于查找索引列上的值。
10. rows
显示当前查询估算到的查找到匹配记录所需的记录行数。
11. Extra
显示当前查询所用的解决方式,它有以下几种情况:讲完了语法,我们来实际操作一波,首先创建个开发云主机域名表:
然后给uname字段加上索引:
查看一下索引是否添加成功:
输出结果为:可以看出索引已经创建成功,接下来添加一些数据
一切准备就绪,下面用explain这个命令来探究一些like语句是否有索引,like有四种情况,分别为没有%、 %% 、左%、右%、
1. like 字段名
输出为:
可以看出:type的值为:range,key的值为uname_index,也就是说这种情况下,使用了索引。
2. like %字段名%
输出为:
可以看出:type的值为ALL也就是全表扫描,而且key的值为NULL,也就是说没用到任何索引。
3. like %字段名
输出为:可以看出:type的值为ALL,key的值为NULL,同样没用到索引。
4. like 字段名%
输出为:可以看出:type的值为:range,key的值为uname_index,也就是说这种情况下,使用了索引。
感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL中explain命令有什么用”这篇文章对大家有帮助,同时也希望大家多多支持开发云,关注开发云行业资讯频道,更多相关知识等着你来学习!

相关推荐: mysql结构对比的示例分析

小编给大家分享一下mysql结构对比的示例分析,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!日常开发经常遇到数据库结构变更,但是不能实时记录下来,上线以后会造成测试和线上的数据库机构不一致;这个小工具的主要解决这个问题;主要是验证,更新后的数据结…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/19 22:49
下一篇 06/19 22:49

相关推荐