MySQL架构原理之体系架构

数据库架构演进

服务端数据库架构演进主要包括:

  1. 单库。单库简单,存在数据量大、读写压力大、单库宕机等问题。
  2. 主从结果。具备一定的高可用性,从库可以提供读服务,缓解读压力;仍然存在数据量大、写压力大等问题。
  3. 分库分表。数据分散于多个分库。存在数据路由、数据一致性等问题。
  4. 由云服务商提供服务。
    在这里插入图片描述

MySQL体系结构

在这里插入图片描述
MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。

一、网络连接层

客户端连接器(Client Connectors):指能够与MySQL服务器建立连接的客户端。目前几乎支持所有主流的
服务端编程技术,例如常见的Jva、C、Python、.NET等,它们通过各自AP技术与MySQL建立连接。

二、服务层(MySQL Server)

服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存
六个部分。

  • 连接池(Connection Pool):负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接。
  • 系统管理和控制工具(Management Services&Utilities):例如备份恢复、安全管理、集群管理等
  • sQL接口(SQL Interface):用于接受客户端发送的各种sQL命令,并且返回用户需要查询的结果。比如
    DML、DDL、存储过程、视图、触发器等。
  • 解析器(Parser):负责将请求的SQL解析生成一个“解析树“。然后根据一些MySQL规则进一步检查解析树
    是否合法
  • 查询优化器(Optimizer):当“解析树“通过解析器语法检查后,将交由优化器将其转化成执行计划,然后与
    存储引擎交互。
    select uid,name from user where gender=1;
    I
  • 缓存(Cache&Buffer):缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,权限缓存,引擎缓
    存等。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

三、存储引擎层(Pluggable Storage Engines)

存储擎负责小ySQL中数据的存储与提取,与底层系统文件进行交互。MySQL存储引擎是插件式的,服务器中的
查询执行引擎通过接口与存储引擎进行通信,接口屏蔽了不同存储引擎之间的差异。现在有很多种存储引擎,各
有各的特点,最常见的是M小ySAM和InnoDB。

四、系统文件层(File System)

该层负责将数据库的数据和日志存储在文件系统之上,并完成与存储引擎的交互,是文件的物理存储层。主要包含
日志文件,数据文件,配置文件,pid文件,socket文件等。pid和socket文件是unix和linux系统独有文件。

日志文件
 show variables like '%log%';
  • 错误日志(Error log)。默认开启
  • 通用查询日志(General query log)。记录一般查询语句
  • 二进制日志(binary log)
    记录了对MySQL数据库执行的更改操作,并且记录了语句的发生时间、执行时长;但是它不记录select.
    show等不修改数据库的SQL。主要用于数据库恢复和主从复制。
  • 慢查询日志(Slow query log)
    记录所有执行时间超时的查询SQL,默认是10秒。
配置文件

用于存放MySQL所有的配置信息文件,比如my.cnf、my.ini等。

数据文件

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL体系架构图一般可以分为以下几层:MySQL Server层、存储引擎层和文件系统层。MySQL Server层又包括连接层和SQL层。网络连接层负责与客户端建立连接和处理网络通信;服务层负责解析SQL语句、进行查询优化和执行查询等操作;存储引擎层负责数据的存储和检索,不同的存储引擎可以提供不同的功能和性能优化;系统文件层负责管理数据库文件的物理存储和读写操作。总体而言,MySQL体系架构是一个多层次的架构,每一层都有不同的功能和责任。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQL体系架构图](https://blog.csdn.net/m0_72607586/article/details/128974505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [超详细图解!【MySQL进阶篇】MySQL架构原理](https://blog.csdn.net/wj1314250/article/details/118462403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值