MySQL查询流程

news/2025/1/17 21:38:41/

1.先上图

如上图所示,MySQL分成server层和引擎层两层。

server层:连接器、分析器、优化器、执行器等,主要是对客户端的指令进行分析,优化,提取等操作

引擎层:主要是对数据进行存储和提取,目前的存储引擎包括:InnoDB、MyISAM、Memory等,其中InnoDB是目前常用的存储引擎,也是mysql的默认引擎

2.职责

连接器:主要是负责和客户端进行连接,长短连接,登录权限校验

查询缓存:判断之前是否执行过该语句,如果执行过了,则可以直接从缓存中获取返回即可,缓存存储方式为key-value,因此效率非常高

分析器:功能如其名,分析语句是否合法,查询数据字段是否有误等

优化器:对客户端请求的语句进行优化,根据优化后的语句进行判断是否走索引等操作

执行器:执行sql语句,从引擎层获取数据

引擎层:获取数据进行返回

3.执行流程

  • 连接上mysql,校验账号密码,获取权限
  • 查询缓存是否有数据,(8.0版本废弃,不建议使用,更新时会失效)
  • 使用分析器分析语句
  • 使用优化器优化语句以及决定是否有索引等
  • 使用执行器执行语句
  • 执行器调用引擎接口获取数据


http://www.ppmy.cn/news/38589.html

相关文章

年薪200W+的 “ChatGPT提示工程师”,是AI时代下逆袭的好职业吗?

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)使用同样的画笔,有人画出百鸟朝凤图,有人画出小鸡吃米图;同样的道理,用户使用同样的ChatGPT,问看上去类似的问题,得出的答案却有的…

springboot(07)邮件发送(qq邮箱)

可以使用Spring Boot提供的spring-boot-starter-mail模块来发送QQ邮件 首先登录QQ邮箱>>>登录成功后找到设置>>>然后找到邮箱设置>>>点击账户>>>找到POP3|SMTP服务>>>点击开启(开启需要验证,验证成功后会有一串授权码…

光度立体法检测原理讲解

光度立体法检测 图像辐照度 决定场景表面片辐射的因素有两个: 1.在场景表面片的照明 投在某一特定表面片上的照明量取决于该表面片在场景中相对于光源的分布位置 2.表面片反射的入射照明部分 在某一特定方向上被表面片反射的入射照明部分取决于表面材料的光学特性 反射类…

零售数据分析之操作篇11:销售占比分析

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维数据分析,通过数据讲故事。 上期内容和作业 上一讲讲了排名与TOP的场景,排名是以排序为基础,从1开始标识其排名的序号;…

[SV]local和protected的区别

local和protected的区别 Q1:什么时候用local和protected? A:local和protected的封装属性,都可以隔离外部对类成员变量的访问。对于验证环境,反倒一般不建议添加local和protected,因为一般验证环境的层次没有…

C 错误处理

C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是…

【动手学习深度学习笔记】

第二章预备知识 节省内存:使⽤切⽚表⽰法将操作的结果分配给先前分配的数组 Z[:] XY就可以把结果覆盖在Z的原内存上,而不是新开辟内存,就节省了内存了 处理缺失值 inputs,outputs data.iloc[:,0:2],data.iloc[:,2] # iloc为位置索引 in…

ABC252 D - Distinct Trio

还有一天就篮球被了,好紧脏.... 我的世界将被摧毁,也许事与愿违 是时候放弃一些东西了呢 D - Distinct Trio (atcoder.jp) 思路: 注意到值域很小,我们可以用值域的前缀和来维护全局哈希,即用前缀和来维护多少数比x…