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

汕头网站建设 网络服务/微商怎么引流被别人加

汕头网站建设 网络服务,微商怎么引流被别人加,wordpress的tag函数使用教程,太原网站排名推广前言只有光头才能变强刷面试题的时候,不知道你们有没有见过MySQL这两个命令:explain和profile(反正我就见过了)..之前虽然知道这两个命令大概什么意思,但一直没有去做笔记。今天发现自己的TODO LIST有这么两个命令,于是打算来学习…

前言

只有光头才能变强

刷面试题的时候,不知道你们有没有见过MySQL这两个命令:explain和profile(反正我就见过了)..

之前虽然知道这两个命令大概什么意思,但一直没有去做笔记。今天发现自己的TODO LIST有这么两个命令,于是打算来学习一番,记录一下~

使用的MySQL的版本为5.6.38

MySQL版本

一、explain命令

1.1体验explain命令

首先我们来体验一下explain命令是怎么使用的,以及输出的结果是什么:

explain select * from table_user ;

输出结果:

体验explain命令

发现很使用起来很简单,只要explain后边跟着SQL语句就完事了(MySQL5.6之前的版本,只允许解释SELECT语句,从 MySQL5.6开始,非SELECT语句也可以被解释了)。

1.2为什么需要explain命令

我们很多时候编写完一条SQL语句,往往想知道这条SQL语句执行是否高效。或者说,我们建立好的索引在这条SQL语句中是否使用到了,就可以使用explain命令来分析一下!

简单来说:通过explain命令我们可以学习到该条SQL是如何执行的,随后解析explain的结果可以帮助我们使用更好的索引,最终来优化它!

通过explain命令我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。

// 好了,我们下面看一下explain出来的结果是怎么看的。

1.3读懂explain命令结果

explain命令输出的结果有10列:id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra

1.3.1id

包含一组数字,表示查询中执行SELECT子句或操作表的顺序。

在id列上也会有几种情况:

如果id相同执行顺序由上至下。

如果id不相同,id的序号会递增,id值越大优先级越高,越先被执行。

(一般有子查询的SQL语句id就会不同)

explain一下拥有子查询的SQL

1.3.2select_type

表示select查询的类型

select_type属性下有好几种类型:

SIMPLLE:简单查询,该查询不包含 UNION 或子查询

PRIMARY:如果查询包含UNION 或子查询,则最外层的查询被标识为PRIMARY

UNION:表示此查询是 UNION 中的第二个或者随后的查询

DEPENDENT:UNION 满足 UNION 中的第二个或者随后的查询,其次取决于外面的查询

UNION RESULT:UNION 的结果

SUBQUERY:子查询中的第一个select语句(该子查询不在from子句中)

DEPENDENT SUBQUERY:子查询中的 第一个 select,同时取决于外面的查询

DERIVED:包含在from子句中子查询(也称为派生表)

UNCACHEABLE SUBQUERY:满足是子查询中的第一个 select 语句,同时意味着 select 中的某些特性阻止结果被缓存于一个 Item_cache 中

UNCACHEABLE UNION:满足此查询是 UNION 中的第二个或者随后的查询,同时意味着 select 中的某些特性阻止结果被缓存于一个 Item_cache 中

类型有点多啊,我加粗的是最常见的,起码要看得懂加粗的部分。

1.3.3table

该列显示了对应行正在访问哪个表(有别名就显示别名)。

当from子句中有子查询时,table列是 格式,表示当前查询依赖 id=N 的查询,于是先执行 id=N 的查询

1.3.4type

该列称为关联类型或者访问类型,它指明了MySQL决定如何查找表中符合条件的行,同时是我们判断查询是否高效的重要依据。

以下为常见的取值

ALL:全表扫描,这个类型是性能最差的查询之一。通常来说,我们的查询不应该出现 ALL 类型,因为这样的查询,在数据量最大的情况下,对数据库的性能是巨大的灾难。

index:全索引扫描,和 ALL 类型类似,只不过 ALL 类型是全表扫描,而 index 类型是扫描全部的索引,主要优点是避免了排序,但是开销仍然非常大。如果在 Extra 列看到 Using index,说明正在使用覆盖索引,只扫描索引的数据,它比按索引次序全表扫描的开销要少很多。

range:范围扫描,就是一个有限制的索引扫描,它开始于索引里的某一点,返回匹配这个值域的行。这个类型通常出现在 =、<>、>、>=、、BETWEEN、IN() 的操作中,key 列显示使用了哪个索引,当 type 为该值时,则输出的 ref 列为 NULL,并且 key_len 列是此次查询中使用到的索引最长的那个。

ref:一种索引访问,也称索引查找,它返回所有匹配某个单个值的行。此类型通常出现在多表的 join 查询, 针对于非唯一或非主键索引, 或者是使用了最左前缀规则索引的查询。

eq_ref:使用这种索引查找,最多只返回一条符合条件的记录。在使用唯一性索引或主键查找时会出现该值,非常高效。

const、system:该表至多有一个匹配行,在查询开始时读取,或者该表是系统表,只有一行匹配。其中 const 用于在和 primary key 或 unique 索引中有固定值比较的情形。

NULL:在执行阶段不需要访问表。

1.3.5possible_keys

这一列显示查询可能使用哪些索引来查找

1.3.6key

这一列显示MySQL实际决定使用的索引。如果没有选择索引,键是NULL。

1.3.7key_len

这一列显示了在索引里使用的字节数,当key列的值为 NULL 时,则该列也是 NULL

1.3.8ref

这一列显示了哪些字段或者常量被用来和key配合从表中查询记录出来。

1.3.9rows

这一列显示了估计要找到所需的行而要读取的行数,这个值是个估计值,原则上值越小越好。

1.3.10extra

其他的信息

常见的取值如下:

Using index:使用覆盖索引,表示查询索引就可查到所需数据,不用扫描表数据文件,往往说明性能不错。

Using Where:在存储引擎检索行后再进行过滤,使用了where从句来限制哪些行将与下一张表匹配或者是返回给用户。

Using temporary:在查询结果排序时会使用一个临时表,一般出现于排序、分组和多表 join 的情况,查询效率不高,建议优化。

Using filesort:对结果使用一个外部索引排序,而不是按索引次序从表里读取行,一般有出现该值,都建议优化去掉,因为这样的查询 CPU 资源消耗大。

最后

原本以为Explain命令是比较难学的,但查找资料看下来,之前只是不知道具体的列和列中下的属性是什么意思而已。常见出现的其实也就那么几个,感觉对着每个属性多看一会,还是可以能看懂的。

当然了,在《高性能MySQL》中也有复杂的SQL语句来分析(但我认为我们一般不会写到那么复杂)..

推荐一个交流学习群:614478470 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

©著作权归作者所有:来自51CTO博客作者JAVA少女的原创作品,如需转载,请注明出处,否则将追究法律责任

http://www.lbrq.cn/news/1330003.html

相关文章:

  • 网站怎样做排名靠前/网站推广投放
  • 用卫生纸做的礼物街网站/上海seo网站优化软件
  • 上海专业做网站公司/站外seo推广
  • 通达oa 做网站/如何宣传推广
  • vs网站开发如何发布/整合营销的概念
  • 旅游网站设计与建设论文/360排名优化工具
  • 什么大的网站是帝国cms做的/厦门百度快照优化排名
  • 贵德县建设局网站/百度seo价格
  • wordpress相对路径设置/seo优化中商品权重主要由什么决定
  • 交友网网站开发文档/网络推广优化方案
  • 直销软件直销系统开发公司/河北百度seo软件
  • 河源哪有做网站/友情链接的英文
  • 做网站一般用什么框架/网站怎么做到秒收录
  • 服务器做php网站吗/深圳广告公司
  • 天安节能科技园公司做网站/腾讯广告投放平台官网
  • wordpress 优酷去广告/seo搜索引擎优化课后答案
  • 网站制作难点/百度广告联盟下载
  • 门户网站类型有哪些/外链火
  • 邢台建设一个企业网站/常见的网站推广方法有哪些
  • 公司网站怎么做才能有官网二字/搜索网站排名优化
  • 数学老师做直播的网站/自动点击关键词软件
  • 小米路由器mini做网站/网络口碑推广公司
  • 如何登录中国建设银行河北分行网站/全球疫情最新数据统计
  • wordpress cart插件/武汉seo工厂
  • 做经营性的网站备案条件/软文推送
  • 响应式网站开发/深圳网络推广的公司
  • 做阿里巴巴网站 店铺装修免费吗/好搜网惠州seo
  • 深圳哪个网站发布做网站/白山seo
  • 做一个同城app得多少钱/八上数学优化设计答案
  • 做网站的文章/永久免费google搜索引擎
  • GaussDB 数据库架构师修炼(十) 性能诊断常用视图
  • UniappDay04
  • [免费]【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts)【论文+源码+SQL脚本】
  • 消息队列MQ常见问题和解决方案
  • 机器学习对中特估股票关键特征选取的应用与研究
  • 「iOS」————继承链与对象的结构