mysql-体系结构

体系架构图

 

 

客户层:

客户端连接层,提供与MySQL服务器建立的支持,不同语言与 SQL 的交互。

服务层:

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

化器和缓存六个部分。

连接池(Connection Pool): 负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接。权限判断可以审核用户有没有访问某个库、某个表,或者表里某行数据的权限。

系统管理和控制工具(Management Services & Utilities):例如备份恢复、安全管理、集群管理等。

SQL接口(SQL Interface):用于接受客户端发送的各种SQL命令,并且返回用户需要查询的结果。比如DML、DDL、存储过程、视图、触发器等。

解析器(Parser):查询解析器针对 SQL 语句解析它的整个执行过程,简称解析树,判断语法是否正确。

查询优化器(Optimizer):当“解析树”通过解析器语法检查后,将交由优化器将其转化成最优的执行计划,然后与存储引擎交互。

缓存(Cache&Buffer): 缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,权限缓存,引擎缓存等。如果查询缓存有命中的查询 结果,查询语句就可以直接去查询缓存中取数据(从mysql 8开始,由于并发会引发很大问题,查询缓存被去掉了。可以使用redis代替)

存储引擎层:

主要负责 MySQL 中数据的存储和提取。与底层系统文件进行交互。

MySQL存储引擎是插件式的,服务器中的查询执行引擎通过接口与存储引擎进行通信,接口屏蔽了不同存储引擎之间的差异 。

存储引擎可以独立于表中,每个表可以使用不同的搜索引擎。

现在有很多种存储引擎,各有各的特点,最常见的是MyISAM和InnoDB。

物理层:

主要是将数据库的数据存储在操作系统的文件系统之上,并完成与存储引擎的交互。

数据库层面的日志:

参数文件 my.cnf ,

错误日志 error.log

慢查询日志 slow.log

全量日志 general log

二进制日志文件 binlog

审计日志 andit log

中继日志 relay log

套接字文件 socket

进程文件 pid

表结构文件

存储引擎层面:

redo log 又称为重做日志

undo log 用于撤销回退的日志,记录事务执行前后行数据的历史记录。(这两个都是InnoDB独有的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值