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

【mysql】执行过程,背诵版

sql执行再mysql的执行过程

1. 建立连接
  • sql通过tcp/ip发送到服务器
  • 服务器检查用户名,密码,权限
  • 创建线程处理连接

如果是sql8.0之前,select会先从缓存中查找,命中则返回,由于表结构变更会导致缓存失效,已废除

2.解析和优化
  • 词法分析:拆分成token
  • 语法分析:检查语法
  • 生成解析树

解析树是SQL语句经过解析器处理后的结构化表示形式。它就像把一句SQL语句"拆解"成一个树状的结构图

以SQL语句 SELECT name FROM users WHERE age > 18 为例,它的解析树可能大致如下:

          SELECT_STATEMENT/      |      \SELECT    FROM    WHERE|         |        |name      users     CONDITION|age > 18
  • 预处理器:
    • 检查表列是否存在,
    • 检查权限
    • 视图展开
  • 查询优化器:
    • 基于成本优化cbo选择最佳执行方案
    • 生成执行计划 可以通过explain查看
3.执行查询sql
  • innodb执行:
  1. 缓冲池检查,看所需数据是否在内存页
  2. 磁盘读取,没有就查磁盘
  3. 加锁,(排他锁/共享锁)
  4. 事务处理:写入undolog redolog
  5. 返回结果
4.返回结果
  • 返回客户端
  • 连接保活或者关闭

https://github.com/0voice

http://www.dtcms.com/a/165309.html

相关文章:

  • Linux-04-用户管理命令
  • JAVA:使用 iTextPDF 处理 PDF 的技术详解
  • 树的序列化 - 学习笔记
  • 【自然语言处理与大模型】如何获取特定领域的微调数据集?
  • iview 如何设置sider宽度
  • 论文阅读:2024 ACM SIGSAC Membership inference attacks against in-context learning
  • 多模态大语言模型arxiv论文略读(五十一)
  • 自主采集高质量三维重建数据集指南:面向3DGS与NeRF的图像与视频拍摄技巧【2025最新版!!】
  • 活动回顾 | 「招商大脑 · 运营引擎」解码大数据招商与智慧园区运营新模式
  • Qt -DFS可视化
  • 91.首次使用Maui的体验与建议 C#例子 Maui例子
  • 系统思考:局部最优与全局失衡
  • windows远程服务器数据库的搭建和远程访问(Mysql忘记密码通过Navicat连接记录解密密码)
  • 量化交易之数学与统计学基础2.3——线性代数与矩阵运算 | 线性方程组
  • 加速LLM大模型推理,KV缓存技术详解与PyTorch实现
  • 车辆检测新突破:VFM-Det 如何用大模型提升识别精度
  • Spring 框架中的常见注解讲解
  • Chromium 134 编译指南 - Android 篇:配置depot_tools(四)
  • 工业控制「混合架构」PK大战 —— 神经网络 + MPC vs 模糊 PID+MPC 的场景选型与实战指南
  • vscode 个性化
  • 深入探讨互联网大厂Java核心技术与架构设计
  • C++继承(上)
  • conda管理python环境
  • Walrus 与 Pudgy Penguins 达成合作,为 Web3 头部 IP 引入去中心化存储
  • 字节暑期实习-网络运维工程师面经
  • 规划权重和全局优化器逻辑处理
  • Copilot for Excel 一键词云分析与情绪分析
  • 第四部分:实用应用开发
  • C# 类成员的访问:内部与外部
  • 嵌入式开发高频面试题全解析:从基础编程到内存操作核心知识点实战