MySQL面试题:一条SQL语句在MySQL中执行过程全解析

这篇具有很好参考价值的文章主要介绍了MySQL面试题:一条SQL语句在MySQL中执行过程全解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 .MySQL 基础架构分析

介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图。

  • 连接/线程处理(连接器): 身份认证和权限相关(如连接处理、授权认证、安全等等)。
  • 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除)。
  • 解析器: 没有命中缓存的话,SQL 语句就会经过解析器,MySQL会解析查询,并创建内部数据结构(解析树)
         就是要先看你的 SQL 语句要干嘛,再检查 SQL 语句语法是否正确。
  • 优化器: 按照 MySQL 认为最优的方案去执行。比如对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。
  • 执行器: 执行语句,然后从存储引擎返回数据。

MySQL面试题:一条SQL语句在MySQL中执行过程全解析

简单来说 MySQL 主要分为 Server 层和存储引擎层:

Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。
存储引擎: 主要负责数据的存储和读取,采用可以替换的插件式架构,支持 InnoDB、MyISAM、Memory 等多个存储引擎,其中 InnoDB 引擎有自有的日志模块 redolog 模块。现在最常用的存储引擎是   

二.总结

MySQL 主要分两个层面一个为 Server 层和引擎层,Server 层主要包括连接器、查询缓存、分析器、优化器、执行器,同时还有一个日志模块(binlog),这个日志模块所有执行引擎都可以共用,redolog 只有 InnoDB 有。
引擎层是插件式的,目前主要包括,MyISAM,InnoDB,Memory 等。
SQL 等执行过程分为两类,一类对于查询等过程如下:权限校验—》查询缓存—》分析器—》优化器—》权限校验—》执行器—》引擎
对于更新等语句执行流程如下:分析器----》权限校验----》执行器—》引擎—redo log prepare—》binlog—》redo log commit
来源于:https://blog.csdn.net/weter_drop/article/details/93386581文章来源地址https://www.toymoban.com/news/detail-776214.html

到了这里,关于MySQL面试题:一条SQL语句在MySQL中执行过程全解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从Mysql架构看一条查询sql的执行过程

    我们的程序或者工具要操作数据库,第一步要做什么事情? 跟数据库建立连接。 首先,MySQL必须要运行一个服务,监听默认的3306端口。在我们开发系统跟第三方对接的时候,必须要弄清楚的有两件事。 第一个就是通信协议,比如我们是用HTTP还是WebService还是TCP? 第二个是消

    2024年02月08日
    浏览(33)
  • myql进阶-一条查询sql在mysql的执行过程

    目录 1. 流程图 2. 各个过程 2.1 连接器 2.2 分析器 2.3 优化器 2.4 执行器 2.5 注意点 假设我们执行一条sql语句如下: 首先我们会和mysql建立连接,此时就会执行到连接器。 连接器的职责是负责和客户端建立连接、获取权限、维持和管理连接。 我们执行sql之前首先要和数据库建立

    2024年01月21日
    浏览(41)
  • GaussDB SQL查询语句执行过程解析

    本文分享自华为云社区《【GaussTech第2期】GaussDB SQL查询语句执行过程解析》,作者: GaussDB 数据库。 SQL于关系型数据库而言,重要性不言而喻。就像一个乐团的指挥,指导着作品的正确演绎和节奏的和谐统一。华为云GaussDB作为新一代关系型分布式数据库,具备卓越的技术性

    2024年04月24日
    浏览(28)
  • MySQL内部机制:SQL语句的执行过程浅析

    目录 1. 连接与认证 2. 解析与优化 3. 查询缓存 4. 打开表和读取数据 5. 执行 6. 返回结果 7. 日志记录 8. 关闭连接 当我们在MySQL中执行一个SQL语句时,背后发生了一系列的操作和步骤。下面是一个简化的概述,描述了SQL语句在MySQL中的执行过程或原理: 客户端(如应用程序或命

    2024年03月12日
    浏览(37)
  • 01 | 一条 SQL 查询语句是如何执行的?

    以下内容出自 《MySQL 实战 45 讲》 一条 SQL 查询语句是如何执行的? 下面是 MySQL 的基本架构示意图,从中可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器

    2024年02月10日
    浏览(32)
  • 01 | 基础架构:一条SQL查询语句是如何执行的?

    画出 MySQL 的基本架构图 Server 层和存储引擎层各自有哪些组件? Server 层 连接器 查询缓存 分析器 优化器 执行器 所有内置函数(日期、时间、数学和加密函数等) 所有跨存储引擎的功能(存储过程、触发器、视图等) 存储引擎层 负责数据的存储和读取 连接器的作用? 连接

    2024年02月08日
    浏览(42)
  • MYSQL执行一条SELECT语句的具体流程

    昨天CSDN突然抽风 我一个ctrl+z把整篇文章给撤掉了还不能复原 直接心态崩了不想写了 不过这部分果然还是很重要,还是写出来吧 这里面总共有两层结构Server层 储存引擎 Server 层负责建立连接、分析和执行 SQL 。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询

    2024年02月12日
    浏览(26)
  • MySQL执行流程_执行一条select语句,期间发生了什么

    MySQL执行流程 server层负责建立连接、分析和执行SQL 包括连接器、查询缓存、解析器、预处理器、优化器、执行器等,所有内置函数和所有跨存储引擎的功能在该层实现 存储引擎层负责数据的存储和提取 索引数据结构就是由存储引擎层实现,不同的存储引擎支持的索引类型也

    2024年02月04日
    浏览(38)
  • 如何进行MySQL源码调试(一条select语句的执行流程)

    一、背景 MySQL是当今世上最受欢迎的使用最广泛的开源数据库,它的繁荣离不开它的开源特性。放在过去商业数据库的时代,大家都没有机会接触到数据库的源代码,但在如今开源数据库的时代,越来越多的人开始研究数据库的源码,并给社区贡献代码,MySQL官方每次发布新

    2024年02月03日
    浏览(34)
  • 一条SQL在MySQL中是如何执行的

    MySQL的内部组件结构 连接数据库做了什么? 建立链接的时候需要将host,user,pwd,在user表中校验用户(用户名和密码)是否正确。每个链接链接到服务器端之后会给链接开辟一个专属的空间。这个空间存储了很多这个链接需要使用的操作。并且会把这个用户的权限都放到这个空间

    2023年04月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包