MySQL —— MySQL逻辑架构与查询过程


博客1

博客2

MySQL逻辑架构整体分为三层

在这里插入图片描述
在这里插入图片描述

  • 最上层为客户端层,并非MySQL所独有,诸如:连接管理、授权认证、权限校验等功能均在这一层处理。

  • MySQL大多数核心服务均在中间这一层,包括查询解析、优化、执行、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存储过程、触发器、视图等。

  • 最下层为存储引擎,其负责 MySQL 中的数据存储和提取。和 Linux 下的文件系统类似,每种存储引擎都有其优势和劣势。中间的服务层通过API与存储引擎通信,这些API接口屏蔽了不同存储引擎间的差异。

连接层

连接层主要负责连接管理、授权认证、权限校验等功能。

  • 连接管理:

    负责客户端与 MySQL 服务器之间的连接建立、维护和终止。客户端发起连接请求,MySQL 服务器接收到请求;每个客户端连接对应服务器上的一个线程,服务器利用线程池来管理这些连接,避免频繁创建和销毁线程,提高效率;当客户端请求断开连接时,服务器会关闭相应的线程,释放资源;

  • 身份认证:

    在客户端输入连接命令(如 mysql -uxxx -pxxx)后,连接层的第一步是进行身份验证。通过用户名和密码进行认证,确保只有授权用户才能访问数据库。还支持 SSL 证书认证,提供更高级别的安全性,确保数据在传输过程中不被窃取。认证成功后,服务器会加载用户的权限信息。

  • 权限校验:

    登录后,连接层会检查用户是否有执行特定操作的权限。这包括对数据库、表和其他资源的访问控制,确保用户只能访问其权限范围内的数据。如果权限不足,服务器会拒绝该请求,并返回相应的错误信息。

  • 比如输入的 mysql -uxxx -pxxx 之后,来到MySQL的第一件事就是校验身份,权限等。每个客户端连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到 MySQL 服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过 SSL 证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。

服务层

  • 认证成功过后,接下来就来到服务层了,服务层是 MySQL 的核心,MySQL 的核心服务层都在这一层,包括要执行的任何 SQL 语句,普通的 DDL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值