MySQL架构
# MySQL 架构
# MySQL 的逻辑架构
# 逻辑视图
- 第一层 -- 客户端所包含的服务,以及连接处理等
- 第二层 -- 包含大多数 MySQL 的核心功能,包括查询包括查询解析、分析、优化、以及所有的内置函数
- 第三层 -- 存储引擎层,负责 MySQL 中数据的存储和提取,包含几十个底层函数,不会去解析 SQL,只是简单地响应服务器请求。
第一、二层可以统称为 Server 层
MySQL 服务器架构的逻辑视图:
# 连接管理与安全性
主要有这么几个步骤:
- 客户端连接 MySQL 服务器(单线程,驻留在一个内核或者 CPU 上)
- 连接时,服务器进行身份验证(基于用户名、发起的主机名和密码)
- 连接后,服务器会继续验证该客户端是否具有其发出的每个查询的权限(例如,是否允许客户端对 world 数据库中的 Country 表执行 SELECT 语句)。
其中,服务器维护了一个缓存区,用于存放已就绪的线程,因此不需要为每个新的连接创建或者销毁线程。
# 优化与执行
MySQL 解析查询以创建内部数据结构(解析树),然后对其进行各种优化。
优化器并不关心表使用的是什么存储引擎,但存储引擎对于查询优化是有影响的。
因为优化器会向存储引擎询问它的一些功能、某个具体操作的成本,以及表数据的统计信息。
# 并发控制
本章的目的是讨论MySQL在两个级别的并发控制:服务器级别与存储引擎级别。
# 读写锁
# 锁的粒度
# 事务
# 隔离级别
# 死锁
# 事务日志
# MySQL 中的事务
# 多版本并发控制
# 复制
上次更新: 2024/9/25 11:16:13