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

mysql架构查询执行流程(图解+描述)

目录

mysql架构查询执行流程

图解

描述 


mysql架构查询执行流程

图解

描述 

用户连接到数据库后,由连接器处理

  • 连接器负责跟客户端建立连接、获取权限、维持和管理连接

客户端发送一条查询给服务器

  • 服务器先检查查询缓存,如果命中缓存,则立即返回存储在缓存中的结果 ; 否则进入下一阶段

服务器进行SQL解析、预处理得到解析树

  • 分析器主要有两步: 词法分析和语法分析 ; 预处理器根据mysql规则检查解析树是否合法
  • 语法解析器和预处理:mysql通过关键字将sql语句进行解析,并生成一颗对应的 “解析树”

由优化器生成对应的执行计划(这个过程中任何语法等错误都可能终止查询)

  • 优化器是在表里面有多个索引的时候,决定使用哪个索引 / 在一个语句有多表关联的时候,决定各个表的连接顺序

mysql通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句

  • 开始执行的时候,要先判断一下你对这个表有没有执行查询的权限
  • 如果没有,就会返回没有权限的错误
  • 如果有权限,mysql根据优化器生成的执行计划,调用存储引擎的 API 来执行查询

最后将结果返回给客户端,并且会将结果存放到查询缓存中

参考 -- MySQL 查询执行的过程 - Java程序员进阶 - 博客园

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

相关文章:

  • 20分钟 Bash 上手指南
  • 事故02分析报告:慢查询+逻辑耦合导致订单无法生成
  • vant2 vue2 两个输入框联动验证遇到的问题
  • 硬件工程师入门教程
  • 如何使用Docker搭建哪吒监控面板程序
  • python-leetcode 45.二叉树转换为链表
  • uni小程序wx.switchTab有时候跳转错误tab问题,解决办法
  • 【一起学Rust | 框架篇 | Tauri2.0框架】在Tauri应用中设置Http头(Headers)
  • STM32G473VET6 在 Keil MDK 下手动移植 FreeRTOS 指南
  • 波导阵列天线 学习笔记11双极化全金属垂直公共馈电平板波导槽阵列天线
  • DeepSeek-R1自写CUDA内核跑分屠榜:开启GPU编程自动化新时代
  • 001 Kafka入门及安装
  • 2024 年出现的 11 大数据收集趋势
  • 动态内容加载的解决方案:Selenium与Playwright对比故障排查实录
  • OSPF BIT 类型说明
  • java excel xlsx 增加数据验证
  • React + TypeScript 数据血缘分析实战
  • 魔搭 ModelScope 模型下载
  • WorldQuant Brain的专属语言——Fast Expression
  • 在低功耗MCU上实现人工智能和机器学习
  • MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  • (2.26 “详细分析示例“ 暴力+位运算 最长优雅子数组)leetcode 2401
  • 【洛谷贪心算法题】P1094纪念品分组
  • 基于coze+微信小程序的ai对话
  • [Linux]项目自动化构建工具-make/Makefile
  • Dashboard-frps
  • android 新增native binder service 方式(三)
  • (IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议
  • seasms v9 注入漏洞 + order by注入+​information_schema​解决方法
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.1单节点安装(Docker与手动部署)