面试官:请问一条select的语句的执行会发生什么?

18 篇文章 3 订阅
订阅专栏


前言:

不找工作的可能永远不知道今年找工作有多难 但还是乐观点 该学就学 该卷就卷 慢慢跟自己和解 终归会有offer的

一:执行一条select的概览

首先来一个概览
在这里插入图片描述
在这里的话整个select的过程分为两层server层储存引擎层

  • server层负责建立连接,分析和执行sql
  • 储存引擎层负责数据的储存跟提取

二:具体流程

1:连接器

(1):步骤

  • 与客户端进行 TCP 三次握手建立连接;
  • 校验客户端的用户名和密码,如果用户名或密码不对,则会报错;
  • 如果用户名和密码都对了,会读取该用户的权限,然后后面的权限逻辑判断都基于此时读取到的权限;

(2):浅浅来一下细节

  • 在连接的时候 我们要确保我们的mysql服务是启动的
  • 还有的是我们创建连接的时候我们创建的是长连接(没错在这里也分为长连接跟短链接 因为使用常连接的话 能避免我们频繁的创建跟断开连接) 但是长连接的话 往往比较占内存 mysql里的话采用的解决的策略的话是 定期断开长连接 跟 客户端主动断开连接

2:查询缓存

(1):mysql5.8之前的幸福时光

既然是缓存那肯定是把一些会重复访问的数据放到缓存中去 从而减少IO次数,提升性能.(往缓存中进行第一次添加数据 是我们已经在查询出来了一次结果 将其返回给客户端 并且将其储存在缓存当中方便下次再次查询的时候直接拿出来),缓存中的储存值的方式是key-value 就是将我们的sql语句设置为key 将我们上次查询出来的结果设置为value.如果没在缓存中查询到 那么我们就接在往下执行 等查询到结果后返回客户端同时在缓存中备份。

(2):mysql5.8之后的悲惨结果

那么这个缓存最大缺点就是我们需要频繁的更新 每当我们update一次的时候 就需要 清空缓存 那么的话 就会出现一个问题 我们刚创建好缓存,但是还没怎么用 就被一条update语句给清空了 那么想问是这个缓存存在意义是啥 ,出于这个原因的话 在mysql8.0之后 mysql中就没有了缓存。

3:解析器(解析sql)

(1):词法解析

mysql 根据你输入的sql遇语句解析出关键字,将关键字组成语法树,这样方便后续模块获取SQL模型,表名,字段名,where条件等

(2):语法解析

根据词法解析出来的结果,语法解析器主要干的就是查询你的sql语法是否正确。但要注意的是敲黑板了 关于sql语句中的字段是否存在表名是否存在 不是在这里检查出来的 是在下面的环节进行检查出来的(执行器的 预处理阶段)

4.执行sql

(1):预处理阶段

预处理阶段比如 我们查询的是select * … 在预处理阶段的话 那么的话 我们的需要将 这个 * 所代表的的一些字段给展示出来, 同时会检查字段的是否存在以及表名的是否存在。

(2):优化阶段

在优化阶段的话,比如我们在这个表中建立了多个索引,那么我们在执行的sql语句的时候 肯定要选择执行效率最高的那个作为索引进行查询我们的结果。 我们可以用 explain + sql语句 来看看我们的sql语句使用了什么索引

在这里插入图片描述

(3):执行器

(1):概述

经历完优化器后,就确定了执行方案,接下来 MySQL 就真正开始执行语句了,这个工作是由「执行器」完成的。在执行的过程中,执行器就会和存储引擎交互了,交互是以记录为单位的。根据执行计划执行 SQL 查询语句,从存储引擎读取记录,返回给客户端;

(2):三种方式

a:主键索引查询
b:全表扫描

就是查询条件不是索引的话 那么就会全表扫描,那么的话效率低下,每次查询结果都返回给server判断结果是否正确

c:索引下推

「下推」这个动作,下推到了哪里。索引下推能够减少二级索引在查询时的回表操作,提高查询的效率,因为它将 Server 层部分负责的事情,交给存储引擎层去处理了。没有索引下推的时候,每查询到一条二级索引记录,都要进行回表操作,然后将记录返回给 Server,
然后进行判断where条件是否符合 如果不符合储存引擎再进行查询。

当我们输入一条SQL查询语句时,发生了什么?
测试0901-1
08-15 674
我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:\nmysql\u0026gt; select * from T where ID=10;\n\n我们看到的只是输入一条语句,返回一个结果,却...
执行一条sql查询语句发生了什么
xhcndh的博客
09-01 355
sql查询语句的背后
执行一条 SQL 查询语句期间发生了什么?
FeelTouch Labs
08-13 165
索引下推后,虽然 reward 列无法使用到联合索引,但是因为它包含在联合索引(age,reward)里,所以直接在存储引擎过滤出满足 reward = 100000 的记录后,才去执行回表操作获取整个记录。相比于没有使用索引下推,节省了很多回表操作。 当你发现执行计划里的 Extr 部分显示了 “Using index condition”,说明使用了索引下推。
MySQL——执行一条select语句期间发生了什么
weixin_52477733的博客
09-05 277
连接建立好以后,输入的SQL语句就可以发送到MySQL服务上MySQL服务接收到SQL语句解析SQL语句的第一个字段,如果是select的话,就从[查询缓存]里查找数据,看是否能直接找到SQL语句对应的结果,[查询缓存]中的记录是 以key-value的形式存储的,key是SQL语句,value是SQL语句对应的结果。Server层负责建立连接,分析和执行SQL.MySQL的大部分功能都在Server层实现.所有的内置函数和跨存储引擎的功能(存储过程,视图,触发器等)也在Server层实现.
执行一条 select 语句期间发生什么?
dx1313113的博客
08-26 99
执行一条 SQL 查询语句期间发生了什么?连接器:建立连接,管理连接、校验用户身份;查询缓存:查询语句如果命中查询缓存则直接返回,否则继续往下执行MySQL 8.0 已删除该模块;解析 SQL,通过解析器对 SQL 查询语句进行词法分析、语法分析,然后构建语法树,方便后续模块读取表名、字段、语句类型;执行 SQL:执行 SQL 共有三个阶段:预处理阶段:检查表或字段是否存在;将select *中的符号扩展为表上的所有列。优化阶段:基于查询成本的考虑, 选择查询成本最小的执行计划;
执行一条 select 语句期间发生了什么?
qq_45981373的博客
05-20 307
创建连接器:首先要客户端要创建一个连接器,用来连接mysqlmysql分为两层,分别是server层和存储引擎)。查询缓存:连接器先查询缓存,如果缓存里有记录即直接得到结果返回给连接器。注意:mysql8里移除了查询缓存这一步解析器:这时sql语句就到了解析器这一步了。在这一步解析器先通过词法分析(词法分析用于查找到sql关键词),词法分析通过后sql语句进入语法分析(语法分析中用于检查sql语法是否正确)。最后构建语法树。执行sql语句
面试官:有哪些原因导致一条SQL语句执行得很慢?
qingyangcc123的博客
07-05 162
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来。所以今天,我带大家来详细扯一下有哪些原因,相信你看完之后一定有所收获,不然你打我。 一、分类讨论 一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。 1、大多
面试官:解释下什么是死锁?为什么发生死锁?怎么避免死锁?
Cr1556648487的博客
08-25 304
开局先来个段子:面试官: 解释下什么是死锁?应聘者: 你录用我,我就告诉你面试官: 你告诉我,我就录用你应聘者: 你录用我,我就告诉你面试官: 滚!
MySQL学习:一条SQL语句执行过程
小朱小朱绝不认输的博客
08-30 1780
最近在学习MySQL的一些底层知识,光使用数据库是远远不够的,在面试过程中,这些底层核心知识更受面试官欢迎。学习了MySQL实战45讲,写的非常好,特此做一些笔记。 本博客主要是讲一条SQL语句执行过程,主要涉及的是两方面知识:一是查询语句涉及的基础架构;二是更新语句涉及的日志系统。 一、一条SQL查询语句是怎么执行的(基础架构) 首先,需要了解一下MySQL的逻辑架构,当执行一条SQL语句时,我们知道它的执行过程,可以对MySQL有更深入的了解,在出现异常,错误的时候,可以更快速的定位问题所在。 下面
吊打面试官MySQL一条 SQL 语句执行过程
帅枫的博客
09-23 218
吊打面试官MySQL一条 SQL 语句执行过程 前言 在平常的开发中,可能很多人都是 CRUD,对 SQL 语句的语法很熟练,但是说起一条 SQL 语句MySQL 中是怎么执行的却浑然不知,今天我就由浅入深,带大家一点点剖析一条 SQL 语句MySQL 中是怎么执行的,吊打面试官。本文主要从两个方面,查询语句和更新语句来解析。 一条 SQL 查询语句如何执行的 比如你执行下面这个 SQL 语句时,我们看到的只是输入一条语句,返回一个结果,却不知道 MySQL 内部的执行过程: mysql&
美团二面拷打:MySQL中 SQL 语句执行流程?
最新发布
JavaGuide
09-22 524
连接器主要和身份认证和权限相关的功能相关,就好比一个级别很高的门卫一样。主要负责用户登录数据库,进行用户的身份认证,包括校验账户密码,权限等操作,如果用户账户密码已通过,连接器到权限表中查询该用户的所有权限,之后在这个连接里的权限逻辑判断都是依赖此时读取到的权限数据,也就是说,后续只要这个连接不断开,即使管理员修改了该用户的权限,该用户也是不受影响的。
执行一条 select 语句期间发生了什么
weixin_44553952的博客
07-14 326
MySQL数据库中,show processlist 的结果中出现的 Id 是怎么分配的,为什么只有一个连接的时候Id为2,而不是1?这里说的查询缓存是 server 层的,不是 Innodb 存储引擎中的 buffer pool。对于一个表,只要有更新操作,就清空这张表的查询缓存,所以查询缓存比较鸡肋。解析器只是负责检查语法和构建语法树,不负责检查表或字段是否存在。由 ON 设置为 OFF 或者 DEMAND。,后面的逻辑判断都基于此处的权限。(TCP,三次握手)客户端的用户名和密码。
mysql基础篇-执行一条 select 语句期间发生了什么?
kk_cola的博客
02-06 556
mysql架构:server层和存储引擎层。
执行一条select语句期间发生了什么?
weixin_51299539的博客
08-16 148
MySQL8.0之前,执行SQL语句的时候,MySQL先解析SQL语句的第一个字段,如果发现是select查询语句,则先去查询缓存中查找是否有这题查询语句,查询缓存相当于一个map,k是查询语句,v是查询结果,如果有这个k,则直接返回v。,server层的执行器调用索引查询的接口,存储引擎去定位符合主键查询条件的第一条记录,然后返回给执行器,执行器判断是否符合查询的条件,符合则直接返回给客户端。存储引擎层负责实现索引数据结构,不同的存储引擎支持的索引类型不同,InnoDB支持的索引类型是B+树。
MySQL常见面试题系列】执行一条查询SQL语句期间发生了什么
weixin_56738054的博客
12-28 448
执行一条查询的sql语句
MySQL执行流程_执行一条select语句期间发生了什么
liaoai的博客
12-12 1183
mysql执行流程_执行一条select语句期间发生了什么
Mysql 执行Select语句发生的事情
qq_40102411的博客
01-02 522
Mysql 执行Select语句发生的事情
超详细解析:在执行一条SQL语句期间发生了什么?
qq_63730529的博客
03-16 1055
我们学习MySQL时,首先第一个接触到的就是SQL语句了,那么在我们运行一条SQL语句时,在MySQL中究竟发生了什么?MySQL是如何在那么多数据中准确的找出我们要操作的那一条语句并且执行我们需要做的操作的?为了解开这个疑问,我们就从MySQL的内部“零件”开始看起吧~看了这么多了,那我们来总结一下,在执行一条SQL语句期间发生了什么?连接器:建立连接,校验用户身份;
SQL面试题解:分组统计胜负结果
这段SQL执行时,根据日期将数据分组,对于每一条记录,如果是'胜'则计数器加1,'负'则计数器加0,最后汇总每个日期的胜败次数。 2. 第二种方法是通过子查询分别计算'胜'和'负'的记录数,然后JOIN到主查询中,...
写文章

热门文章

  • TCP三次握手(详解) 89753
  • MVC三层架构(详解) 65387
  • C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法) 31185
  • 拥塞控制(详解) 20914
  • 类加载机制(整个过程详解) 19511

分类专栏

  • 计算机网络 8篇
  • 11 1篇
  • Mysql 18篇
  • 好文分享 3篇
  • Java学习笔记 27篇
  • java刷lc 60篇
  • 微服务 1篇
  • leetcode周赛 6篇
  • leetcode复习题目 93篇
  • 回溯法 15篇
  • springboot 1篇
  • Spring 1篇
  • 2023届备战春招面试复习 11篇
  • java常用数据结构 2篇
  • 编译原理 1篇
  • 算法分析与设计 224篇
  • xshell 1篇
  • java小项目 8篇
  • 报错 14篇
  • 22
  • Java并发 7篇
  • 数据结构 71篇
  • 排序 3篇
  • java并发编程 6篇
  • 线程池 1篇
  • Git的使用 1篇
  • 数组 8篇
  • java项目 5篇
  • java基础练习 11篇
  • 寒假算法训练营 144篇
  • 二分查找 12篇
  • 动态规划 42篇
  • javaweb 3篇
  • 贪心算法 23篇
  • JavaEE 3篇
  • 101道leetcode 110篇
  • java多线程 6篇
  • map 24篇
  • Mybatis 1篇
  • 第五届河北农业大学程序设计大赛 3篇
  • 数据结构与算法题目集(中文) 51篇
  • 操作系统 9篇
  • BFS 6篇
  • jdbc 4篇
  • 分支限界 2篇
  • vector 11篇
  • 解决流氓软件 1篇
  • 银行家算法 3篇
  • PAT甲级题目 2篇
  • 多线程 5篇

最新评论

  • 7-8 数字三角形 (31 分)(思路+详解+动态规划)Come Baby!!!!!!!!!!!

    remnant_song: 简洁明了

  • 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!

    harborian: 错误太多

  • 7-5 汽车加油问题 (20 分)(思路+详解)Come 宝!!!!!!!!!!!!!

    m0_65528014: 请问有上机链接吗

  • 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!

    caiyenengwan: 直接等比例扩大然后赋值给一个整数型也可以,小数部分自动省略了

  • 7-1 矩阵链相乘问题 (20 分)(思路+详解+题目解析) 动态规划做法

    你不AC我AC: 题目链接

最新文章

  • 渣渣双非秋招以来第一份offer
  • 秋招日常(一天三封感谢信)
  • Explain各个字段的含义
2022年319篇
2021年216篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天向上的菜鸡杰!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家西藏玻璃钢雕塑定做大型户外玻璃钢雕塑商业广场玻璃钢卡通雕塑毕节玻璃钢景观雕塑材料淡绿色带绳玻璃钢花盆组合山西商城玻璃钢造型雕塑制作溧水商场主题美陈惠州玻璃钢雕塑多少钱一平米小狗玻璃钢雕塑济宁玻璃钢卡通雕塑造型凤泉玻璃钢雕塑玻璃钢雕塑二次加工南京玻璃钢雕塑生产厂家玉溪市玻璃钢雕塑设计价格四川人物玻璃钢雕塑图片赤壁八马骏图玻璃钢雕塑玻璃钢七星瓢虫雕塑灵武玻璃钢雕塑施工商场装饰玻璃钢人物雕塑要求芜湖创意玻璃钢雕塑市场金牛玻璃钢花盆花器山东玻璃钢雕塑定制湖北公园玻璃钢卡通人物雕塑商场美陈包装设计汉中玻璃钢商场美陈大型玻璃钢熊猫雕塑眼睛洛阳生产玻璃钢花盆景观玻璃钢卡通雕塑咨询问价人物玻璃钢雕塑订制许昌大型玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化