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

MySQL#Select语句执行过程

服务端程序架构

MySQL 是典型的 C/S 架构,即 Client/Server 架构,服务器端程序mysqld
在这里插入图片描述

在这里插入图片描述

Select语句执行过程

连接层

客户端和服务器端建立连接,客户端发送 SQL 至服务器端

SQL层

SQL语句处理

  1. 查询缓存: 缓存命中该SQL执行结果直接返回。表数据更新时缓存会清空,适用于表数据是静态的 或者表数据很少发生变化的场景 (MySQL8.0后废弃)
  2. 解析器:对 SQL 语句进行语法分析、语义分析
  3. 优化器:确定 SQL 语句的执行路径,比如索引选择…
  4. 执行器:执行前用户权限校验,权限校验后执行 SQL 查询并返回结果

在这里插入图片描述

存储引擎层

用途:与数据库文件打交道,负责数据的存储和读取。
特点:存储引擎以插件形式引入,由开发人员自由选择,每个存储引擎适合的场景不同。
常见存储引擎:

  1. MyISAM 存储引擎:不支持事务,不支持外键(MySQL 5.5 版本之前默认的存储引擎
  2. InnoDB 存储引擎:支持事务、行级锁定、外键约束等 (MySQL 5.5 版本之后默认的存储引擎
  3. Memory 存储引擎:使用系统内存作为存储介质,如果mysqld 进程崩溃,则会导致所有的数据丢失,适用于临时存储数据场景
  4. NDB 存储引擎:也叫NDB Cluster 存储引擎,适用于 MySQL Cluster 分布式集群环境
  5. Archive 存储引擎: 良好的压缩机制,在请求写入时会进行压缩。适用于文件归档系统

注意:数据库的设计在于表的设计, MySQL 中每个表的设计都可以采用不同的存储引擎

http://www.xdnf.cn/news/641521.html

相关文章:

  • LLMs之Qwen:《Qwen3 Technical Report》翻译与解读
  • 2025年5月系分论文题(回忆版)
  • C# 怎么做chat柱状图能实现不同的颜色,还带游标
  • 篇章二 基础——包装类
  • ADS学习笔记(二) 交流小信号仿真
  • Windows逆向工程提升之x86结构化异常SEH处理机制
  • Java 可扩展状态系统设计:备忘录模式的工程化实践与架构演进
  • TCP建立连接为什么不是两次握手,而是三次,为什么不能在第二次握手时就建立连接?
  • 基于AI自动生成测试用例
  • 有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)
  • 8.Java 8 日期时间处理:从 Date 的崩溃到 LocalDate 的优雅自救​
  • 【黑马点评】redis实战
  • Seaborn库的定义与核心功能
  • 【linux】mount命令中,data=writeback参数详细介绍
  • ubuntu 22.04安装和使用docker介绍
  • Java面向对象 二
  • GitHub Copilot 现已支持 AI Coding Agent
  • MySQL:12_视图
  • 08_模型训练篇-Torchvision(下):其他有趣的功能
  • 文件操作(C语言版)
  • 12.LCD、FSMC和ILI9341芯片
  • python中pandas之dataframe知识
  • 文本存入向量数据库流程
  • Python海龟绘图(turtle模块)常考知识点总结
  • 【数据结构】线性表之“双链表(带头循环双向链表)”
  • java 加密算法的简单使用
  • Linux系统中实时查看日志
  • Unity3D仿星露谷物语开发50之初始化农作物
  • day27:零基础学嵌入式之进程
  • Docker镜像存储路径迁移指南(解决磁盘空间不足问题)