• MySQL架构设计详解


    1. MySql架构

    MySQL官方文档:https://www.mysql.com/
    MySQL架构设计总共分为四层,分别是连接层,服务层,引擎层与存储层。
    在这里插入图片描述

    2. MySql连接

    就是基于tcp/ip安全连接的客户端。主要用于管理连接,权限验证。最上层是一些客户端和连接服务, 包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。 主要完成一些类似于连接处理、 授权认证、 及相关的安全方案。 在该层上引入了线程池的概念, 为通过认证安全接入的客户端提供线程。 同样在该层上可以实现基于 SSL 的安全链接。 服务器也会为安全接入的每个客户端验证它所具有的操作权限。

    3. MySql服务层

    MySql服务层主要通过,接口接受Sql命令,解析器进行词法分析,语法分析,优化器用于生成执行计划,选择索引等优化操作,查询缓存用于缓存查询结果,执行器用于操作索引,返回结果。

    Management Services & Utilities系统管理合控制工具
    SQL IntefaceSQL接口,接受用户的SQL命令,并且返回用户需要查询的结果,比如select from就是调用SQLInterface
    Parser解析器,SQL命令传递到解析器的时候会被接卸器验证和解析,主要用于词法分析,语法分析
    Optimizer优化器,SQL语句在查询之前回使用查询优化器对查询进行优化,比如生成执行计划,选择索引,where条件时优化器来决定先投影还是先过滤
    Cache 和 Buffer查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key 缓存,权限缓存等

    4. MySql引擎

    就是存储引擎。存储引擎层, 存储引擎真正的负责了 MySQL 中数据的存储和提取, 服务器通过API 与存储引擎进行通信。 不同的存储引擎具有的功能不同, 这样我们可以根据自己的实际需要进行选取。常见的就是innodb与Myisam。

    MyisamInnodb
    1myisam是默认表类型不是事物安全的innodb支持事物
    2myisam不支持外键Innodb支持外键
    3myisam支持表级锁(不支持高并发,以读为主)innodb支持行锁(共享锁,排它锁,意向锁),粒度更小,但是在执行不能确定扫描范围的sql语句时,innodb同样会锁全表
    5myisam在磁盘上存储上有三个文件.frm(存储表定义) .myd(存储表数据) .myi(存储表索引)innodb磁盘上存储的是表空间数据文件和日志文件,innodb表大小只受限于操作系统大小
    6myisam使用非聚集索引,索引和数据分开,只缓存索引innodb使用聚集索引,索引和数据存在一个文件
    7myisam保存表具体行数 ,所以count很快innodb不保存

    5. MySql存储层

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

  • 相关阅读:
    项目启动 | 盘古信息助力鼎阳科技开启智能制造升级新征程
    获取深度学习模型权重或者某一层特征图输出的方法:基于pytorch
    递归是会更秀strtok
    航空专场 | 无人机设计仿真流程讲解与案例实操
    导出pdf高清
    【P1008 [NOIP1998 普及组] 三连击】
    【机器人学导论(第四版)】1-绪论
    spring源码 - AOP原理理解
    Flink学习(二)-基础概念
    Spring中Bean的生命周期
  • 原文地址:https://blog.csdn.net/m0_37583655/article/details/127586937