当前位置: 首页 > MySQL数据库

MySQL逻辑体系架构的示例分析

时间:2026-01-28 12:53:11

Mysql逻辑体系架构(大致架构分为三层)

第一层:连接线程处理

    客户端——>连接线程处理(连接处理,授权认证,安全)

    第二层:包含大部分mysql核心服务

      查询缓存——>解析器——>优化器——>执行查询

      第三层:包含存储引擎

        存储引擎负责mysql中数据的存储和提取(和Linux下的文件系统类似)

        Mysql逻辑体系架构—详细介绍(分为八个步骤)

        1.Connectors

          指的是不同预言中与SQL的交互

          2. Enterprise Management Services & Utilities

            系统管理和控制工具

            3. Connection Pool(连接池)

              管理缓冲用户连接,线程处理等需要缓存的需求。

                负责监听对MySQL Server的各种请求,接受连接请求,转发所有连接请求到线程管理模块。

                每一个连接上MySQL Server的客户端请求都会被分配(创建)一个连接线程为其单独服务,并对连接线程进行了缓存,因此不需要为每个client连接单独创建和销毁,而连接线程的主要工作就是负责MySQL Server与客户端的通信,接收客户端的命令请求,传递Server端的结果信息,线程管理模块则负责管理维护这些连接线程,包括线程的创建,线程的cache等等

                4.SQL Interface(SQL接口)

                  接受用户的SQL命令,并且返回用户需要查询返回的结果,比如select from就是调用SQL Interface

                  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语句的结果,使用的是 “选取-投影-联接” 策略进行查询;<br/>比如:select uid,name from user where gender=1;<br/>这个查询语句先根据where后面的语句进行选取,而不是先将表全部查询出来以后再进行gender过滤,然后根据uid和name进行属性投影,而不是将所有的属性全部取出来以后再进行过滤,最后将这两个查询条件联接起来生成最终的查询结果

                      7.Cache 和 Buffer(查询缓存)

                      主要功能是将客户端提交给 Mysql 的 Select的类query请求的返回的结果集cache到内存中,与该query的一个hash值做一个对应,该query所取数据的基表发生任何数据的变化之后,MySQL会自动使该query的Cache失效,在读写比例非常高的的应用系统中,Query Cache对性能的提高是非常显著的,当然它对内存的消耗也是非常大的。<br/>如果查询缓存中有有效的命中查询结果,查询语句就可以直接去查询缓存中取数据,这个缓存机制是由一系列小缓存组成的,比如表缓存,记录缓存,Key缓存,权限缓存等等

                      8.pluggable storage Engines(插件式存储引擎)

                        存储引擎接口:MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎。

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

                        9.file system

                          文件系统,数据,日志(redo,undo)索引,错误日志,查询记录,慢查询等

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

                          数据库的工作流程

                            最上层:客户端连接

                              第二层:核心服务

                                第三层:数据库引擎层

                                FAQ分析

                                1.什么是插件式存储引擎

                                2.什么是LRU缓存

                                  在JVM中Ehcache的缓存策略包含

                                    LRU - least recently used(最近最少使用)

                                    LFU - least frequently used(最不经常使用)

                                    FIFO - first in first out, the oldest element by creation time(清除最早缓存的数据,不关心是否经常使用)


                                  上一篇:MVCC中快照怎么工作的
                                  下一篇:怎么掌握mysql多表操作
                                  mysql

  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素