我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL的逻辑架构及工作流程是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL的逻辑架构及工作流程是什么

本篇内容主要讲解“MySQL的逻辑架构及工作流程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的逻辑架构及工作流程是什么”吧!

    MySql并不完美,但是却足够灵活,能够适应高要求的环境。同时,MySql既可以嵌入到应用程序中,也可以支持数据仓库、内容索引和部署软件、高可用的冗余系统、在线事务处理系统等各种应用类型。  

    为了更心如的理解MySql服务器,我们需要理解MySql各部件之间如何协同工作。需要我们去理解它的逻辑架构。

    下面我们就来介绍一下MySql的逻辑架构:

    MySQL的逻辑架构

    MySQL的最重要、最与众不同的特性就是它的存储引擎架构,这种架构将查询处理以及其他系统任务和数据的存储/提取相分离。

    所带来的好处就是可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。  

    下图就是MySQL的逻辑架构图:

      MySQL的逻辑架构及工作流程是什么

    MySQL架构总共三层,在上图中以虚线作为划分。  

    首先,最上层的服务并不是MySQL独有的,大多数给予网络的客户端/服务器的工具或者服务都有类似的架构。比如:连接处理、授权认证、安全等。    

    第二层的架构包括大多数的MySQL的核心服务。包括:查询解析、分析、优化、缓存以及所有的内置函数(例如:日期、时间、数学和加密函数)。同时,所有的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。

    第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器通过API和存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明化。存储引擎API包含十几个底层函数,用于执行“开始一个事务”等操作。但存储引擎一般不会去解析SQL(InnoDB会解析外键定义,因为其本身没有实现该功能),不同存储引擎之间也不会相互通信,而只是简单的响应上层的服务器请求。

    更加详细的MySQL系统架构图

    看完上图后,大家是不是觉得MySQL的系统架构挺简单的?其实不然。

    上图只是MySQL系统架构的大的模块图,其实每一层的结构都相当复杂,下图就是详细模块图:

      MySQL的逻辑架构及工作流程是什么

    首先,我们对该图中的各个模块做一简单介绍: 

    1、Connectors  

    指的是不同语言中与SQL的交互。  

    2、Connection Pool  

    管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的主要工作就是负责 MySQL Server 与客户端的通信,接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等。

    3、 Management Serveices & Utilities  

    系统管理和控制工具。

    4、 SQL Interface  

    接受用户的SQL命令,并且返回用户需要查询的结果。  

    5、 Parser  

    SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。在 MySQL中我们习惯将所有 Client 端发送给 Server 端的命令都称为 query ,在 MySQL Server 里面,连接线程接收到客户端的一个 Query 后,会直接将该 query 传递给专门负责将各种 Query 进行分类然后转发给各个对应的处理模块。 

    主要功能:  

    a 、 将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,然后做出针对性的转发到后续步骤,以后SQL语句的传递和处理就是基于这个结构的;  

    b、 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的。

    6、 Optimizer  

    查询优化器:SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端请求query,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果。  

    使用的是“选取-投影-联接”策略进行查询:

    用一个例子就可以理解: select uid,name from user where gender = 1;

    这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤;然后根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤。最后将这两个查询条件联接起来生成最终查询结果。

    7 、Cache和Buffer  

    查询缓存:主要功能是将客户端提交 给MySQL 的 Select 类 query 请求的返回结果集 cache 到内存中,与该 query 的一个 hash 值 做一个对应。该 query 所取数据的基表发生任何数据的变化之后, MySQL 会自动使该 query 的Cache 失效。在读写比例非常高的应用系统中, Query Cache 对性能的提高是非常显著的。当然它对内存的消耗也是非常大的。  

    如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。

    8 、存储引擎接口  

    MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现,每个存储引擎开发者都可以按照自己的意愿来进行开发。 

    注意:存储引擎是基于表的,而不是数据库。

    数据库的工作流程

    相信通过上述的介绍,大家对MySQL的逻辑架构已经有了一定的了解,下面我们下来介绍一下数据库具体的工作流程,先看一张图:

      MySQL的逻辑架构及工作流程是什么  

    在这里,我从数据库架构的三个层面分别介绍数据库的工作流程: 

    最上层:客户端连接  

    1、连接处理:客户端同数据库服务层建立TCP连接,连接管理模块会建立连接,并请求一个连接线程。如果连接池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的情况下,创建新的连接线程负责这个客户端。    

    2、授权认证:在真正的操作之前,还需要调用用户模块进行授权检查,来验证用户是否有权限。通过后,方才提供服务,连接线程开始接收并处理来自客户端的SQL语句。

    第二层:核心服务  

    1、连接线程接收到SQL语句之后,将语句交给SQL语句解析模块进行语法分析和语义分析。

    2、如果是一个查询语句,则可以先看查询缓存中是否有结果,如果有结果可以直接返回给客户端。

    3、如果查询缓存中没有结果,就需要真的查询数据库引擎层了,于是发给SQL优化器,进行查询的优化。如果是表变更,则分别交给insert、update、delete、create、alter处理模块进行处理。

    第三层:数据库引擎层  

    1、打开表,如果需要的话获取相应的锁。    

    2、先查询缓存页中有没有相应的数据,如果有则可以直接返回,如果没有就要从磁盘上去读取。

    3、当在磁盘中找到相应的数据之后,则会加载到缓存中来,从而使得后面的查询更加高效,由于内存有限,多采用变通的LRU表来管理缓存页,保证缓存的都是经常访问的数据。

    最后,获取数据后返回给客户端,关闭连接,释放连接线程。

    到此,相信大家对“MySQL的逻辑架构及工作流程是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    MySQL的逻辑架构及工作流程是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    MySQL的逻辑架构及工作流程是什么

    本篇内容主要讲解“MySQL的逻辑架构及工作流程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的逻辑架构及工作流程是什么”吧!MySql并不完美,但是却足够灵活,能够适应高要求的
    2023-03-13

    MySQL的逻辑架构及工作全流程

    这篇文章主要介绍了MySQL的逻辑架构及工作全流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-12

    MySQL三层逻辑架构是什么

    小编给大家分享一下MySQL三层逻辑架构是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL三层逻辑架构MySQL的存储引擎架构将查询处理与数据的存储/
    2023-06-27

    Ansible架构及工作原理是什么

    Ansible架构及工作原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH
    2023-06-19

    php laravel框架的工作流程是什么

    PHP Laravel框架的工作流程如下:路由:请求到达服务器后,Laravel会根据路由配置文件(routes/web.php或routes/api.php)将请求路由到对应的控制器方法。控制器:控制器接收到请求后,会调用相应的业务逻辑处
    2023-10-22

    Nginx的基本架构及工作原理是什么

    Nginx是一个高性能的HTTP和反向代理服务器,采用事件驱动架构来处理请求。它的基本架构是由Master和Worker进程组成。Master进程负责管理Worker进程的生命周期,处理信号、配置文件的加载和重新加载等工作。Worker进
    Nginx的基本架构及工作原理是什么
    2024-04-03

    mybatis工作原理及流程是什么

    MyBatis是一种持久层框架,它的工作原理及流程如下:1. 配置文件加载:MyBatis首先读取配置文件(通常是mybatis-config.xml),该文件包含了数据库连接信息、映射文件路径等配置。2. 映射文件加载:MyBatis根据
    2023-08-14

    dnslog原理及工作流程是什么

    DNSlog是一种常用于渗透测试和恶意软件分析的技术,通过利用DNS协议的特性,实现收集和分析恶意软件的通信行为。DNSlog的工作流程如下:1. 攻击者创建一个域名,例如:attacker.com。2. 攻击者在DNS服务器上配置NS记录
    2023-09-25

    Mybatis整体架构及运行流程是什么

    本篇内容介绍了“Mybatis整体架构及运行流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis是什么Mybatis是一个
    2023-06-02

    Linux主流架构运维的工作原理什么

    这篇文章将为大家详细讲解有关Linux主流架构运维的工作原理什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Lin
    2023-06-16

    mvc的工作流程是什么

    MVC(Model-View-Controller)是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。MVC的工作流程如下:用户与视图进行交互,例如通过界面操作或输入数据
    2023-10-26

    springmvc的工作流程是什么

    Spring MVC的工作流程如下:1. 客户端发送HTTP请求到DispatcherServlet。2. DispatcherServlet是前端控制器,它接收到请求后,根据配置文件找到对应的处理器映射器(HandlerMapping)。
    2023-08-18

    Git的工作流程是什么

    本文小编为大家详细介绍“Git的工作流程是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Git的工作流程是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Git 工作流程一般工作流程如下:克隆 Git 资
    2023-06-17

    Djabgo的工作流程是什么

    Django的工作流程如下:1. 客户端发送HTTP请求到Django应用的服务器。2. 服务器接收请求并根据URL映射找到相应的视图函数。3. 视图函数处理请求并返回一个HTTP响应。4. 服务器将响应发送回客户端。在这个过程中,Djan
    2023-10-19

    springboot的工作流程是什么

    Spring Boot 的工作流程如下:创建 Spring Boot 项目:首先需要使用 Spring Initializr 创建一个 Spring Boot 项目。可以选择所需的依赖和项目配置,然后生成一个基本的 Spring Boot
    springboot的工作流程是什么
    2024-03-14

    编程热搜

    目录