尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

MySQL架构长啥样?

MySQL架构长啥样?
📅 发布时间:2026/6/19 9:34:53

MySQL服务器总共有四层:连接层,服务层,存储引擎层,文件系统层.

连接层:

就是控制客户端连接的,MySQL可以开启多个端口号,外部程序都可以进行连接.
连接层会进行权限校验并保存客户端的连接信息,通过池化技术实现线程重用,以及根据具体的配置限制连接数量.

通过连接管理器线程处理端口上的客户端连接请求:
1.在所有平台上,用一个管理器线程处理所有的 TCP/IP 连接请求。
2.在 Unix 上,管理器线程还可以处理其他Unix socket 连接请求。
3.在 Windows 上,使用一个管理器线程处理通过Shared-memory方式连接请求,使用另一个管理
器线程处理Named-pipe方式连接请求。
4.在所有平台上,可以额外启用一个端口用于接受针对管理的 TCP/IP 连接请求,管理端口的连接可以使用处理"普通" TCP/IP 请求的管理器线程,也可以通过选项文件配置单独的线程(不做论)。

连接管理器线程在接收到每个客户端连接后,把请求转发到真正的执行线程,每个请求都对应一
个执行线程,该线程处理连接的身份验证和具体请求。执行线程使用线程池技术进行缓存,当一个请求需要处理时,先从线程池中查找是否有可用的线程,如果没有则新创建一个,当连接结束时,如果线程池没有满,则把当前线程放入线程池,主要的作用是提高线程的复用,减少创建线程造成的系统开销从而提高效率。

可以通过以下几个系统变量和状态变量控制和监视服务器管理客户端连接的线程:

1.系统变量thread_cache_size 决定了线程池缓存的大小。默认情况下,服务器在启动时会自动
调整这个值,但也可以通过选项文件明确指定大小,值为 0 时禁用缓存,此时为每个新连接创建执
行一个线程,并在连接断开时释放;
2.有些复杂的SQL语句在执行过程中可能会有深层递归从而消耗更多的内存,通过设置
thread_stack=N 调整线程堆栈大小;
3.要查看缓存中的线程数以及超过缓存数后新创建的线程数,通过状态变量 Threads_cached 和
Threads_created 查看;

系统变量max_connections 可以控制服务器允许同时连接的最大客户端数,当服务器达到
max_connections 指定的连接数时会拒绝所有新的连接请求,同时会增加状态变量
Connection_errors_max_connections 的值;

mysqld实际上允许 max_connections+1 个客户端连接。额外的连接为拥有
CONNECTION_ADMIN 权限的帐户(管理员)使用,即使普通连接达到了max_connections 的
数量,管理员也可以连接到服务器进行管理操作;

在部署为主从复制的环境中,从节点的连接数也会计入 max_connections 中,如果连接达到上
限主从复制将会失败;

max_connections 具体数据和服务器的硬件有关,比如可用的内存、每个连接消耗的内存,每
个连接的工作负载、响应时间、可用文件描述符的数量等等

服务层

数据库服务层是整个数据库服务器的核心,主要包括了服务管理和公共组件、NoSQL和SQL接口、解析器、查询优化器和缓存等部分,下面我们分别介绍每个部分的作用:

NoSQL和SQL接口主要负责接收客户端发送的各种SQL语句和命令,并将SQL发送到其他部分,然后把接收到的结果返回给客户端。

语法分析器的主要作用是将客户端发来的SQL语句中的关键字和自定义字段进行提取、解析,最
终将 SQL 语句转换为一棵解析树,分析的过程中包含词法分析和语法分析;词法分析,主要是对关键字进行提取,比如select/update/delete/create... ;语法分析,主要判断 SQL 语句是否满
足语法规则,如果语法错误则异出异常,也就是我们常见的ERROR 1064 (42000): You have an
error in your SQL syntax。

Optimizer(查询优化器):通过语法校验的SQL语句将进入查询优化器处理阶段,查询优化器会将解析树转化为查询计划,一般情况下,一条查询可以有很多种执行方案,查询优化器会根据执行计划匹配合适的索引,选择最佳的执行方案,最终把确定要执行的SQL交给执行器调用存储引擎API。

MySQL的缓存主要的作用是为了提升查询的效率,当服务器接收到一个select 查询语句时,会
先进入缓存查询当前SQL语句在缓存中是否存在,缓存以key 和value 的形式存储,key是具体的
SQL语句,value是结果的集合,如果命中缓存,直接返回结果,无法命中缓存,则进入分析器进行正常查询流程。这里需要说明的是,缓存数据对应的数据在被更新之后将会失效,尤其在写多读少的场景中,缓存会频繁失效与新增,命中率非常低,因此MySQL5.6之后服务层缓存功能默认关闭,而且在MySQL8.0中服务层缓存被官方删除,这里不做过多讨论。

存储引擎

存储引擎是处理不同表类型SQL操作的MySQL组件。MySQL服务器采用可插拔的存储引擎架构,
在服务器运行时可以动态的加载和卸载。

查看当前服务器支持哪些存储引擎可以使用 SHOW ENGINES 语句, Engine 表示:存储引擎的
名称, Support :表示当前服务器是否支持,值分别为: YES 、NO 和DEFAULT 分别表示,支
持、不支持和当前设置或默认引擎

InnoDB是一款兼顾高可靠性和高性能的通用存储引擎。在MySQL8.0中默认的存储引擎是InnoDB,使用 CREATE TABLE 语句创建表时,在没有修改默认存储引擎或明确指定其他存储引擎时,将创建一个InnoDB 的表。

InnoDB 的主要优势

• DML操作遵循ACID模型,事务具有提交、回滚和崩溃恢复功能,以保护用户数据。
• 如果发生意外而崩溃,无论当时数据库发生了什么,都不需要在重启数据库后执行任何特殊操作。InnoDB 的崩溃恢复功能会自动完成崩溃之前提交的更改,并撤消崩溃前正在进行但未提交的更改,从而允许我们从中断的地方继续执行。备份与恢复专题介绍
• 支持行级锁,提高了多用户的读取并发性和性能。事务和锁专题中介绍这里说不支持集群模式,是指Innodb不是用来专门做集群的存储引擎,但是支持集群的,就比如说主从复制
• InnoDB 存储引擎维护了一个自己的缓冲池,访问数据时在内存中缓存表和索引数据,对于经常
使用的数据直接从内存中处理,大幅提升了效率。在专用数据库服务器上,通常会将高达 80% 的
物理内存分配给缓冲池。
• InnoDB表优化了基于主键的查询,每个InnoDB表都有一个称为聚簇索引的主键索引,实现通过最少的磁盘I/O完成对主键的查找。
• 为了保持数据完整性, InnoDB 支持 FOREIGN KEY (外键)约束。在进行插入、更新和删除数据
时确保相关表之间的一致性
• 当从表中反复查询相同的行时,自适应哈希索引会自动接管这些查询,此时查询效率和哈希表相
同。

如果InnoDB不是默认的存储引擎,可以通过在命令行指定选项--default-storageengine=InnoDB 或者在选项文件的[mysqld] 节点定义default-storageengine=InnoDB 并重新启动服务器来设InnoDB 存储引擎

由于业务实际需要,服务器默认存储引擎不是InnoDB时,想要创建一个InnoDB表,可以在使用
CREATE TABLE 语句创建表时明确指定InnoDB存储引擎,当然这样方式也可以指定其他任何支
持的存储引擎

这里其他就不介绍了

文件系统层

这个就不详细说,看MySQL数据目录就行了.

相关新闻

  • Arbess从基础到实践(22) - 集成GitPuk+sourcefare+PostIn自动化部署
  • 2025 年最新客服机器人品牌有哪些,看这一篇就够了 - 品牌策略主理人
  • PC耐力板厂家推荐:聚碳酸酯专业制造 + 国际认证(技术实力) - 品牌排行榜

最新新闻

  • SPI通信错误处理:从硬件原理到软件实践的深度解析
  • 2026 郑州惠济区奢侈品黄金回收门店盘点指南:本地优质机构汇总 - 奢侈品回收
  • FreeRTOS深度解析:从内核机制到嵌入式实战选型指南
  • 高德地图自定义Marker进阶:从基础图标到动态交互的实战指南
  • 2026年焦作市贵金属旧料回收优质靠谱实体门店精选五家 黄金回收铂金回收白银回收彩金回收真实探店测评清单及联系方式推荐 - 前途无量YY
  • 2026年湖州市贵金属旧料回收优质靠谱实体门店精选五家 黄金回收铂金回收白银回收彩金回收真实探店测评清单及联系方式推荐 - 前途无量YY

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号