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

MySQL中查询语句的执行流程

文章目录

  • 前言
  • 流程图
  • 概述
  • 最后

前言

你好,我是醉墨居士,今天我们一起探讨一下执行一条查询的SQL语句在MySQL内部都发生了什么,让你对MySQL内部的架构具备一个宏观上的了解

流程图

在这里插入图片描述

概述

对于查询语句的SQL的执行流程,主要可以分为5个大步骤

  1. 客户端通过与MySQL服务端维持长连接,提交一条查询的SQL语句
  2. MySQL服务端接收到后首先查询缓存,如果缓存中存在记录则直接返回结果
  3. 缓存中不存在记录的话,将SQL语句交给解析器,经过解析内部的词法解析、语法解析最终生成抽象语法树(AST)
  4. 预处理器对语法树进行将select * from xxx中的 * 转换成对应的列名,将别名转换成真实指代的名称等等
  5. 优化器对SQL的执行进行优化,例如检查SQL的执行能否利用索引进行加速,最终生成一个查询代价最小的执行计划
  6. 执行器执行执行计划,从存储引擎读取数据,最终返回结果,并进行缓存

最后

好的,朋友们,我们目前对MySQL中查询语句的执行有了一个总体的认知,后续我还会发布更多关于MySQL原理的博客,希望大家多多支持,多多捧场😊

http://www.lryc.cn/news/465406.html

相关文章:

  • 【代码随想录Day47】单调栈Part02
  • Java全栈经典面试题剖析3】JavaSE面向对象2
  • @JsonIgnoreProperties做接口对接时使用带来的好处
  • SpringBoot整合mybatisPlus实现批量插入并获取ID
  • 实战RAG第一天——llama_index向量索引,查询引擎,搜索知识库问答,全部代码,保姆级教学
  • 大数据治理
  • 云计算作业
  • 复制文件到U盘提示:对于目标文件系统,文件过大
  • SpringBoot+Swagger2.7.0实现汉化(2.8.0不行)
  • c++ 散列表
  • Windows通过netsh控制安全中心防火墙和网络保护策略
  • UML(Unified Modeling Language,统一建模语言)
  • 深⼊理解指针(2)
  • Ubuntu中MySQL远程登录设置
  • typescript 中封装一个 class 来解析接口响应数据
  • [LeetCode] 21. 合并两个有序链表
  • CTFHUB技能树之SQL——MySQL结构
  • Git小知识:合理的分支命名约定
  • Ubuntu如何显示pcl版本
  • wordcloud 字体报错
  • 使用Matplotlib绘制极轴散点图
  • Elasticsearch入门:增删改查详解与实用场景
  • 【AI论文精读6】SELF-RAG(23.10)附录
  • sql-labs靶场第十七关测试报告
  • 面试官:MySQL一次到底插入多少条数据合适啊?
  • WSL2 构建Ubuntu系统-轻量级AI运行环境
  • 什么是凸二次规划问题
  • 解决 Elasticsearch cluster_block_exception 错误的终极指南
  • QT sql驱动错误QMYSQL driver not loaded
  • 数据驱动,漫途能耗管理系统打造高效节能新生态!