MySQL性能分析之explain的使用

  众所周知,在我们编程过程中肯定避免不了写SQL来进行增删改查,学会如何写SQL很容易,但是写好一个SQL缺并不简单,因为我们所编写的SQL有时候目的是达到了,但是却特别消耗数据库的性能,这就是我们写的稍微有些问题,接下来我们就来学习一下MySQL中的性能分析explain的相关知识点。

  首先我们需要学会使用explain去分析我们的SQL语句,.使用explain语句去查看分析结果

如explain select * from test1 where id=1;

  其次我们使用了之后会在命令界面中出现如下图片的列,我们就需要明白这些列都是干什么的


会出现:id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列,接下来就让我们来分析一下各列的含义


id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序,它有三种情况:

①id相同,执行顺序由上至下;

②id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行;

③id既存在相同也存在不同。


select_type:select查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询,它有六种情况:

①SIMPLE:简单的select查询,查询中不包含子查询或者UNION

②PRIMARY:查询中包含任何复杂的子部分,最外层查询则被标记为它

③SUBQUERY:在SELECT或WHERE列表中包含了子查询

④DERIVED:在FROM列表中包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,把结果放在临时表里

⑤UNION:若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM子句的子查询中,外层的SELECT将被标记为:DERIVED

⑥UNION RESULT:从UNION表获取结果的SELECT


table:显示这一行数据是关于哪张表的


type:显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:  

  system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

  一般来说,得保证查询至少达到range级别,最好能达到ref。


possible_keys:指出MySQL能使用哪个索引在该表中找到行。如果是空的,没有相关的索引。这时要提高性能,可通过检验WHERE子句,看是否引用某些字段,或者检查字段不是适合索引。


key:显示MySQL实际决定使用的键。如果没有索引被选择,键是NULL。


key_len:显示MySQL决定使用的键长度。如果键是NULL,长度就是NULL。文档提示特别注意这个值可以得出一个多重主键里mysql实际使用了哪一部分。


ref:显示哪个字段或常数与key一起被使用。

rows:这个数表示mysql要遍历多少数据才能找到,在innodb上是不准确的。

Extra:如果是Only index,这意味着信息只用索引树中的信息检索出的,这比扫描整个表要快。

  关于MySQL性能分析及explain用法的知识就介绍到这里了,希望本次的介绍能够对您有所收获!

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值