MySQL的整体架构及功能详解

2025-12-12 0 287

在前面的系列文章中,我们讲解了MySQL基础功能相关的知识,在这篇文章中,重点讲讲MySQL的整体架构,以便在后续的学习中更好的了解所讲的功能属于MySQL的哪一部分,以及前后相关的工作流程。

MySQL整体架构图

这里我们以MySQL官方提供的整体架构图为基准,确保知识的权威性和准确性。

MySQL架构图

通过上图,我们可以看到,MySQL架构设计总共分为四层,分别是客户端层,服务层,存储引擎层与系统文件层。

下面,我们就来看看各层的详细功能及特性。

客户端层

客户端层是MySQL架构中的最顶层,即架构图中的MySQL Connectors部分。客户端通过客户端层向服务器发送请求指令。

客户端可以通过命令行或者图形化界面(GUI),利用有效的MySQL命令和表达式向服务器发起请求。如果指令有效,则会返回结果。

客户端层的主要服务包括:

  • 连接处理(Connection Handling) :当客户端向服务器发送请求时,服务器接收请求并与客户端建立连接。一旦连接建立,服务器会为客户端分配一个线程来处理其请求,所有来自客户端的查询都会通过这个线程执行。
  • 身份验证(Authentication) :在客户端连接到MySQL服务器时,身份验证会在服务器端进行。这通常通过用户名和密码进行验证。
  • 安全性(Security) :在成功进行身份验证后,MySQL服务器会验证客户端是否拥有权限执行特定的查询操作,从而保障系统的安全性。

客户单除了命令行和图形化界面之外,几乎支持所有主流的服务端语言,例如:Java、C、C++、Python等,都是通过各自的API接口与MySQL建立连接。

服务层

服务器层是MySQL架构中的第二个层,负责MySQL关系型数据库管理系统的所有逻辑功能。服务器层也被称为\”MySQL架构的大脑\”。当客户端发出请求指令后,服务器会检查指令是否匹配,并尽快返回结果。

服务器层包括以下子模块:

  • 线程处理(Thread Handling) :服务器层中的线程处理模块为每个连接的客户端提供独立线程,所有来自客户端的查询都由客户端的线程执行并由这个模块管理。
  • 解析器(Parser) :解析器是一种软件组件,它通过解析输入生成数据结构(解析树)。在解析之前,还会执行词法分析,将输入分解为多个标记(tokens)。接着,解析器通过语法分析和语义分析生成最终的解析树。
  • 优化器(Optimizer) :解析完成后,优化器模块会应用多种优化技术。这些技术可能包括重写查询、调整表扫描顺序或选择合适的索引等。优化器的目标是优化查询执行效率。
  • 查询缓存(Query Cache) :查询缓存模块存储客户端输入查询的完整结果集。在解析之前,MySQL服务器会首先检查查询缓存。如果缓存中存在与输入查询完全相同的结果,服务器会跳过解析、优化和执行过程,直接返回缓存结果。
  • 缓冲与缓存(Buffer and Cache) :缓冲和缓存模块存储用户之前执行的查询。当用户输入新的查询时,查询缓存会检查是否有相同的查询记录。如果有记录,系统将直接返回结果,而无需解析、优化和执行。
  • 表元数据缓存(Table Metadata Cache) :元数据缓存是一个保留内存区域,用于跟踪数据库、索引或对象的信息。当打开的数据库、索引或对象数量增加时,元数据缓存的大小也会随之增大。
  • 键缓存(Key Cache) :键缓存用于唯一标识缓存中的对象。默认情况下,边缘服务器会基于资源路径和查询字符串缓存内容。

需要注意的是,从MySQL 5.7.20开始,查询缓存已被弃用,并在MySQL 8.0中被删除。通常,缓存只适用于表数据不会经常变动的场景,如果表数据经常更新(大多数场景),缓存命中率低下,加上频繁的维护缓存,有时候造成的问题比解决的问题还要多,因此,缓存的功能就显得比较鸡肋了。

存储引擎层

存储层,又称存储引擎层,它是真正负责MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。

存储引擎层是MySQL架构中的独特层级,它使MySQL成为开发者的优选数据库。存储层提供了高度可定制的存储引擎功能,比如InnoDB、MyISAM、NDB和Memory等。

根据不同的情况和需求,用户可以选择适合的存储引擎。这些存储引擎是可插拔的,用户创建的表可以绑定到对应的存储引擎上。

InnoDB存储引擎

基本功能特性:

  • InnoDB是MySQL的默认事务性存储引擎,也是最重要且被广泛使用的存储引擎。
  • 它特别适用于处理大量短暂事务,性能高且支持自动崩溃恢复。
  • 数据存储在独立的表空间中,可以由多个数据文件组成。
  • 表以簇式索引存储,主键查找速度极快。次级索引包含主键列,因此建议尽量设计较小的主键以优化性能。

MyISAM存储引擎

基本功能特性:

  • MyISAM是MySQL 5.1及以前版本的默认引擎,具有功能全面、支持全文索引及GIS(地理信息)功能等特点。
  • 不支持事务和行级锁,并且缺乏崩溃恢复能力。
  • 如果表是只读或者表较小,可以考虑使用MyISAM。
  • 每个表的存储文件通常包括两个:数据文件(.MYD扩展名)和索引文件(.MYI扩展名)。

其他内置存储引擎

基本功能特性:

  • Archive引擎:适用于只需要INSERT和SELECT查询的场景,例如日志记录。因为它使用zlib压缩数据,所以磁盘I/O非常低。
  • Blackhole引擎:不实际存储数据,仅记录传入的查询,适用于日志记录和测试。
  • CSV引擎:支持使用CSV格式的数据表,方便与外部程序直接共享数据。
  • Federated引擎:充当其他服务器之间的中介,通过客户端连接查询远程表。
  • Memory引擎:将所有数据存储在内存中,适用于需要快速访问且数据不需要持久化的场景。
  • Merge引擎:作为MyISAM的变体,允许合并多个类似表到一个虚拟表。
  • NDB Cluster引擎:实现分布式、高可用、故障容错的集群存储。

第三方存储引擎

MySQL的可插拔存储引擎API允许开发者根据具体需求设计自己的存储引擎,例如OLTP存储引擎、列式存储引擎等。

系统文件层

数据存储层,在三层架构中,也有归于存储引擎层的说法,主要是将数据存储在运行于设备的文件系统之上, 并完成与存储引擎的交互。

基础功能特性:

  • 负责将数据以文件的形式存储在文件系统上。
  • 存储引擎通过这个层与磁盘上的数据文件进行交互。
  • 主要包含数据文件 (.frm, .ibd) 和日志文件(如 binlog, redo log, error log)、配置文件、MySQL的进行pid文件和socket文件等。

小结

这篇文章我们从架构的维度,粗粒度的梳理了MySQL实现的基础架构。当后续继续学习MySQ相关的功能特性时,可以更好的定位到相应的功能位于架构中的哪一层以及它们前后所涉及到的分层以及关系。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 MySQL的整体架构及功能详解 https://www.zuozi.net/35618.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务