请说下你对 MYSQL 架构的了解?

Server层包括:

  • 连接器:负责和客户端建立连接,获取权限,管理连接
  • 查询缓存:在一个查询语句中,会先到缓存中查看之前是否查询过这条语句(如果开启了查询缓存功能):若存在则直接返回缓存的结果,优点是命中缓存时效率很高,缺点是缓存失效非常频繁,只要有对一个表的更新,该表所有的查询缓存都会被清空,MySQL 8.0 版本已删除了查询缓存功能
  • 分析器:对 SQL 语句进行词法分析和语法分析,判断语句是否合法
  • 优化器:对SQL语句进行优化,选择索引
  • 执行器:调用存储引擎接口,返回结果

存储引擎层负责:

  • 数据的存储和提取,其架构是插件式的,支持 InnoDB MyISAM 等多个存储引擎。从MySQL 5.5.5 版本开始默认的是 InnoDB,但是在建表时可以通过 engine = MyISAM 来指定存储引擎。不同存储引擎数据的存取方式不同,支持的功能也不同。
sql 复制代码
服务器层和存储引擎层
Server层:   
    首先要有一个客户端与MySQL服务器通过连接器建立起连接,在这里会有一个权限的管理(如:通过用户名,密码,端口 判断是否有权限),连接器在执行SQL语句之前就连接好了,
    其次,查询缓存(在MySQL 8.0 已经删除了)就是一个缓存,把我们所有的查询缓存下来,但是他有一个缺点只要你对数据库进行了更新,它的所有缓存都会失效,不会检查你的更新对缓存是否有影响,所以失效会非常频繁,只要有更新就会失效,所以在8.0之后就删除了,在8.0之前如果我们开启了查询缓存你查寻一条SQL语句他就会优先看一下,有没有命中缓存(有没有同样的一条SQL语句执行过)如果有就直接返回结果。就不用继续向下执行。优点是如果命中就会非常非常快,因为直接返回结果,不用执行下面的内容。
    再次,分析器,对我们写的SQL语句进行词法或语法的分析,符不符合MySQL的语法
    然后进入到,优化器对SQL语句进行优化,并不是我们写了什么SQL语句,他就会执行什么,比如 where条件写的合不合理他可能会构建一个新的语句去执行,包括创建语句一些默认值的补齐,它都会去给我们加上。还会看有没有用到索引,索引有没有失效然后去选择合适的索引去执行。
    最后,执行器,调用存储引擎的接口去通过存储引擎得到在存储引擎里存的这个数据然后把结果得到
    
存储引擎层:负责数据的存储和提取
    MySQL存储引擎默认用的是InnoDB,可以更换存储引擎,这种可以更换存储引擎的方式这种架构叫做插件式的
相关推荐
宠友信息几秒前
从重复请求到订单同步看内容社区源码的处理思路
java·spring boot·redis·后端·mysql·spring
LaughingZhu1 分钟前
Product Hunt 每日热榜 | 2026-07-17
前端·数据库·人工智能·经验分享·mysql·chatgpt·html
薛定猫AI7 分钟前
【技术干货】目标驱动型编码智能体实战:用 Claude Opus 4.8 构建可验证的开发任务闭环
人工智能·架构
qq_4542450310 分钟前
GraphFoundation — 通用图基础框架
算法·架构
胡萝卜术9 小时前
深度重构:Agent Skills——从 Prompt 工程到能力工程
javascript·架构·github
踏月的造梦星球10 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
韩楚风10 小时前
【参天引擎】事务生命周期 / MVCC / Undo / ACID / 分布式事务 功能域整体解析
数据库·分布式·mysql·架构·cantian
通问AI10 小时前
Apple Intelligence 国行备案深度技术解析:阿里千问如何被集成到苹果端侧AI架构
人工智能·架构
明航咨询—张老师10 小时前
软考软件评测师技术深度剖析:2026年考试改革后的知识体系与备考架构
大数据·架构
愿做无知一猿11 小时前
Nacos连接MySQL异常?DataGrip竟成救星
数据库·mysql