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

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.lryc.cn/news/2387770.html

相关文章:

  • hbuilder中h5转为小程序提交发布审核
  • 文档注释:删还是不删
  • 【数据结构】单链表练习
  • JVM 性能优化终极指南:全版本兼容、参数公式与场景实战
  • 分布式爬虫监控架构设计
  • MySQL的参数 innodb_force_recovery 详解
  • 学习vue3:跨组件通信(provide+inject)
  • Alibaba Sentinel 入门教程:从理论到实战
  • 2.3 TypeScript 非空断言操作符(后缀 !)详解
  • 【菜狗work前端】小程序加if判断时不及时刷新 vs Web
  • 01 NLP的发展历程和挑战
  • TCP 三次握手:详解与原理
  • LabVIEW累加器标签通道
  • 在 Unity 中,Start 方法直接设置 RectTransform 的位置,时出现问题,与预计位置不匹配。
  • 永磁同步电机控制算法--IP调节器
  • Ubuntu 25.04 锁屏不能远程连接的解决方案
  • Java 自动装箱和拆箱还有包装类的缓存问题
  • java-jdk8新特性Stream流
  • 大语言模型 21 - MCP 自动操作 Figma+Cursor 实现将原型转换为代码
  • QNAP NEXTCLOUD 域名访问
  • Spring MVC深度解析:控制器与视图解析及RESTful API设计最佳实践
  • 华为OD机试真题——信道分配(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 比亚迪“双剑”电池获中汽中心权威认证,堪称“移动安全堡垒”。
  • 【mysql】mysql的高级函数、高级用法
  • 了解一下C#的SortedSet
  • 【平面波导外腔激光器专题系列】用于光纤传感的低噪声PLC外腔窄线宽激光器
  • Pytorch里面多任务Loss是加起来还是分别backward? | Pytorch | 深度学习
  • K8S Pod调度方法实例
  • 【mindspore系列】- 算子源码分析
  • 学习日记-day17-5.27