当前位置: 首页 > 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

相关文章:

  • 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 个性化
  • 2025五一档新片电影总票房破亿
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 上海国际咖啡文化节开幕,北外滩集结了超350个展位
  • 国台办:台商台企有信心与国家一起打赢这场关税战
  • 原国家有色金属工业局副局长黄春萼逝世,享年86岁
  • 光明网评“泉州梦嘉商贸楼不到5年便成危楼”:监管是否尽职尽责?