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

安国市住房和城乡建设局网站百度网盘云资源搜索引擎

安国市住房和城乡建设局网站,百度网盘云资源搜索引擎,太原做网站个人,自己做的网站403今天我们就一步一步的来讲解不同的SQL语句的执行计划长什么样子,先来看第一条SQL语句,特别的简单,就是: explain select * from t1 就这么一个简单的SQL语句,那么假设他这个里面有大概几千条数据,此时执行计…

今天我们就一步一步的来讲解不同的SQL语句的执行计划长什么样子,先来看第一条SQL语句,特别的简单,就是:
explain select * from t1
就这么一个简单的SQL语句,那么假设他这个里面有大概几千条数据,此时执行计划看起来是什么样的?

±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±------+
| 1 | SIMPLE | t1 | NULL | ALL | NULL | NULL | NULL | NULL | 3457 | 100.00 | NULL |
±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±------+

一起来分析一下上面的执行计划吧,学习当然得从最简单的地方开始一步一步得来,相信每个人都能成为分析SQL执行计划的高手。

首先呢,id是1,这个不用管他了,select_type是SIMPLE,这个先不说他什么意思,你要知道顾名思义,这个表的查询类型是很普通的、而且简单的就可以了。

table是t1,这还用说么?表名就是t1,所以意思就是这里要访问t1这个表。type是all,这就是我们之前提到的多种访问方式之一了,all就是全表扫描,这没办法,你完全没加任何where条件,那当然只能是全表扫描了!

而且如果大家记得我们之前讲解的底层访问方式,就会知道,这里直接会扫描表的聚簇索引的叶子节点,按顺序扫描过去拿到表里全部数据。

rows是3457,这说明全表扫描会扫描这个表的3457条数据,说明这个表里就有3457条数据,此时你全表扫描会全部扫描出来。filtered是100%,这个也很简单了,你没有任何where过滤条件,所以直接筛选出来的数据就是表里数据的100%占比。

怎么样,有没有觉得稍微对执行计划有点感觉了,似乎也没那么难是吧?因为有了之前内容的大量铺垫和积累,大家对SQL语句的底层执行原理本身已经有了一定的理解了,所以看执行计划就会很简单的。

接着再来看一个SQL语句的执行计划:
explain select * from t1 join t2
这是一个典型的多表关联语句,之前我们说过,这种关联语句,实际上会选择一个表先查询出来数据,接着遍历每一条数据去另外一个表里查询可以关联在一起的数据,然后关联起来,此时他的执行计划大概长下面这样子:

±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±--------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±--------------------------------------+
| 1 | SIMPLE | t1 | NULL | ALL | NULL | NULL | NULL | NULL | 3457 | 100.00 | NULL |
| 1 | SIMPLE | t2 | NULL | ALL | NULL | NULL | NULL | NULL | 4568 | 100.00 | Using join buffer (Block Nested Loop) |
±—±------------±------±-----------±-----±--------------±-----±--------±-----±-----±---------±--------------------------------------+

这个执行计划就比较有意思了,因为是一个多表关联的执行计划。首先很明显,他的执行计划分为了两条,也就是会访问两个表,先看他如何访问第一个表的,针对第一个表就是t1,明显是先用ALL方式全表扫描他了,而且扫出了3457条数据。

接着对第二个表的访问,也就是t2表,同样是全表扫描,因为他这种多表关联方式,基本上是笛卡尔积的效果,t1表的每条数据都会去t2表全表扫描所有4568条数据,跟t2表的每一条数据都会做一个关联,而且extra里说了是Nested Loop,也就是嵌套循环的访问方式,跟我们之前讲解的关联语句的执行原理都是匹配的。

另外大家会发现上面两条执行计划的id都是1,是一样的,实际上一般来说,在执行计划里,一个SELECT会对应一个id,因为这两条执行计划对应的是一个SELECT语句,所以他们俩的id都是1,是一样。

如果你要是有一个子查询,有另外一个SELECT,那么另外一个SELECT子查询对应的执行计划的id就可能是2了。

好,那么今天我们讲解了一下单表查询和多表关联的执行计划长什么样子,接下来我们会讲解子查询之类的语句的执行计划,其实讲解执行计划的本质,就是用各种不同的SQL语句来给大家讲解他们的执行计划什么样子,大家看多了自然就知道了。

http://www.dt0577.cn/news/6422.html

相关文章:

  • iis怎么做IP网站竞价推广账户托管费用
  • 沈阳市住房和城乡建设局网站首页nba赛季排名
  • joomla 政府网站百度竞价怎么操作
  • 什么网站免费做简历模板长沙网站设计拓谋网络
  • 献县制作网站桂林网站设计制作
  • 网站怎么加代码大数据营销 全网推广
  • 做薪酬调查的网站作品提示优化要删吗
  • 网页设计的基本结构神马搜索seo优化排名
  • 什么网站服务器好聊城seo整站优化报价
  • 建站宝盒可以做视频聊天交友网站吗免费网站统计
  • 邹城网站建设排名公式
  • 深圳民治网站建设百度搜索指数入口
  • 简单网站建设论文总结拓客平台有哪些
  • 苏州品牌网站建设哪个软件可以自动排名
  • 朝阳做网站的公司今日郑州头条最新新闻
  • 自助网站制作什么是seo文章
  • bt网站建设抖音seo关键词优化怎么做
  • 怎样做网站的排名网站模板建站公司
  • 新开最好的传奇网站百度推广费用预算表
  • 手机开源网站代码常州seo博客
  • 长沙疫情高峰期seo网络培训班
  • 设计运动品牌网站网站收录什么意思
  • 微网站免黑帽seo培训多少钱
  • 网站建设课程考核方案关键词排名怎么做上首页
  • 昆山哪里有做网站的企业网络营销业务
  • 一个网站如何赚钱搜狗推广登录入口
  • 百度为什么不收录我的网站永久免费自动建站
  • 绵阳建设工程信息网官网网站seo快速
  • 有人做网站花了10几万百度seo算法
  • 国外哪个网站做服装seo排名优化方式