MySQL逻辑架构

本文详细介绍了MySQL的逻辑架构,包括连接层、业务逻辑处理层、存储引擎层和数据存储层。在连接层,处理连接、认证和权限验证;在业务逻辑处理层,涉及SQL解析、查询缓存、优化器等功能;存储引擎层支持不同的存储引擎,如InnoDB和MyISAM,各有优劣;数据存储层则负责实际的数据存储。文章还阐述了查询处理的工作流程,强调了存储引擎的插件式架构及其带来的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

前言 

MySQL逻辑架构图

层级介绍 

第一层:连接层

第二层:业务逻辑处理层

第三层:存储引擎层

第四层:数据存储层

工作流程

总结 


前言 

        MySQL 软件提供了一个非常快速、多线程、多用户和健壮的 SQL(结构化查询语言)数据库服务器。MySQL Server 旨在用于任务关键型、重负载生产系统以及嵌入到大规模部署的软件中。


MySQL逻辑架构图


层级介绍 

第一层:连接层

        主要完成一些类似于连接处理、授权认证及相关的安全方案,在该层上引用了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。每个客户端连接都会在服务端拥有一个线程,每个连接发起的查询都会在对应的单独线程中执行。

第二层:业务逻辑处理层

        业务逻辑处理层是MySQL的核心服务功能层,包括查询解析、分析、查询缓存、内置函数、存储过程、触发器、视图等,select操作会先检查是否命中查询缓存,命中则直接返回缓存数据,否则解析查询并创建对应的解析树。如sql接口,缓存查询,sql的分析和优化以及部分内置函数的执行。当提交的SQL语句经过该层时,MySQL会通过分析器判断处理并自行优化,如果不符合要求,就会返回SQL语句错误。

① 管理服务和工具组件
    从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库。

② SQL接口组件
    进行DML、DDL,存储过程、视图、触发器等操作和管理;用户SQL命令接口。

③ 解析器组件
    验证和解析SQL命令。

④ 查询优化器组件
    对SQL语句查询进行优化, “选取、投影和连接”。

⑤ 缓存和缓冲区
    由一系列小缓存组成的,比如表缓存,记录缓存,key缓存,权限缓存等。

 

第三层:存储引擎层

        存储引擎层主要负责MySQL中数据的存储和提取,MySQL服务器通过API与存储引擎通信,屏蔽了各种引擎之间的差异,MySQL采用插件式的存储引擎的架构,开发时可以根据项目需求来设置存储引擎。常用的存储引擎有:InnoDB、MyISAM。

存储引擎 InnoDB 和 MyISAM 的对比:

对比项InnoDBMyISAM
主外键不支持支持
事务不支持支持
行表锁表锁,即使操作一条数据也会锁住整个表,不适合高并发的操作

行锁,操做时只锁住某一行,不对其他行有影响适合高并发的操作

缓存只缓存索引,不缓存真实数据不近缓存索引,还缓存真实数据,对内存的要求较高,而且内存大小对性能有决定性的影响
表空间
关注点性能事务
默认安装YESYES

第四层:数据存储层

         主要是将数据存储在运行于裸设备的文件系统之上,并完成于存储引擎的交互。


工作流程

  1. 首先客户端与MySQL连接,这部分流程由连接器处理,它包括管理客户端与MySQL的连接之外还包括权限认证。当客户端与MySQL建立连接,MySQL会查询权限表该用户相关权限,存放在该连接绑定的session中,当权限修改时,不会影响已经建立的连接,直到重新建立连接才会生效。
  2. 建立连接之后,客户端提交一个select语句,会首先在缓存中查找,如果能找到则直接返回结果,否则交由分析器处理。缓存是以表为单位的,当对某个表进行更新相关操作时,该表的缓存会全部失效。据了解,缓存的使用往往弊大于利,建议不适用。MySQL 8.0之后的版本已经将查询缓存的整块功能删掉了。
  3. 流程到分析器,分析器对SQL进行词法分析和语法分析,然后根据分析结果再先查找缓存,如若还找不到结果,则走接下来的流程。
  4. 流程到了优化器,由于我们往往会在一个表建多个索引,优化器根据执行,自行决定是否使用索引、使用哪个索引进行查询,然后交由执行器处理。
  5. 最后,执行器根据优化器给出的执行计划,结合连接的权限进行结果查询。

总结 

  • MySQL是插件式的存储引擎的架构,可以进行拔插替换。
  • 插件式的存储引擎的架构将查询处理和其他的系统任务以及数据的存储提取相分离。

参考文献:https://blog.youkuaiyun.com/weixin_44580146

                  https://blog.youkuaiyun.com/qq_35688140

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阑珊处的秋月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值