美文网首页
Mysql架构

Mysql架构

作者: Fantast_d2be | 来源:发表于2020-07-15 14:35 被阅读0次

Mysql逻辑架构

Mysql是三层的逻辑架构,如下图


三层架构.png
  • 第一层:连接/线程处理
    连接处理器,授权认证,安全
  • 第二层:Mysql核心服务层
    主要提供查询解析,分析,优化,缓存,所有内建函数(日期,世间,数学和加密函数等)。跨存储引擎功能(存储过程、视图、触发器)
  • 第三层: 存储引擎
    存储和提取数据

Mysql逻辑架构细化

逻辑架构.png
Connectors
指不同语言中与SQL的交互

Management Serveices & Utilities
系统管理和控制工具

Connection Pool: 连接池

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

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

Parser: 解析器

  • SQL命令传递到解析器的时候会被解析器验证和解析。

主要功能:
a . 将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,然后做出针对性的转发到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
b. 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的

Optimizer: 查询优化器

  • SQL语句在查询之前会使用查询优化器对查询进行优化。

  • 它使用的是“选取-投影-联接”策略进行查询。
    用一个例子就可以理解: select uid,name from user where gender = 1;

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

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

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

存储引擎接口
存储引擎接口模块可以说是 MySQL 数据库中最有特色的一点了。目前各种数据库产品中,基本上只有 MySQL 可以实现其底层数据存储引擎的插件式管理。这个模块实际上只是 一个抽象类,但正是因为它成功地将各种数据处理高度抽象化,才成就了今天 MySQL 可插拔存储引擎的特色。
从图还可以看出,MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现,每个存储引擎开发者都可以按照自己的意愿来进行开发。
注意:存储引擎是基于表的,而不是数据库。

相关文章

  • MySQL的逻辑架构

    MySQL的逻辑架构 MySQL的逻辑架构(from《高性能MySQL》)MySQL逻辑架构,来自:高性能MySQ...

  • mysql 架构

    MySQL架构图解 MySQL物理架构 MySQL逻辑架构 mysqld: MySQL服务器守护程序,在后台运行。...

  • 20190401每周精品之编程

    mysql执行过程 一MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是MySQL 的一个简要架构...

  • 读书笔记-高性能mysql(理解mysql知识点)

    第一章, mysql架构和历史 mysql架构图, mysql是客户端/服务器的c/s架构 mysql架构图 事务...

  • MySQL高级

    MySQL的架构介绍MySQL的架构介绍MySQL简介 MySQL Linux版的安装MySQL 配置文件MySQ...

  • MySQL架构学习笔记

    MySQL逻辑架构 了解MySQL的架构有助于深入理解MySQL服务器,下图是MySQL的三层逻辑架构图(图片来自...

  • 一、MySql 基础架构

    一、MySql 基础架构 目录[toc] 1.1Mysql逻辑架构 如上图:展示了mysql逻辑的架构图。 最上层...

  • MySQL一条语句执行的过程

    一 MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是 MySQL 的一个简要架构图,从下图你可以...

  • 一条sql语句在mysql中如何执行的

    一 MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是 MySQL 的一个简要架构图,从下图你可...

  • 一条 SQL 语句在 MySQL 中如何执行的

    一 MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是 MySQL 的一个简要架构图,从下图你可以...

网友评论

      本文标题:Mysql架构

      本文链接:https://www.haomeiwen.com/subject/sdwdhktx.html