数据库组成

#MySQL #InnoDB

数据库组成

由 Server 层 + 存储引擎组成.

数据库组成

server 层

  1. 连接器用来维持用户与数据库的连接, 认证, 管理等
  2. 缓存查询,如果当前有之前命令执行的缓存,就会直接返回之前的结果. (MySQL 8.0之后已经移除)
  3. 分析器用来判断当前输入的 SQL 语句是否合法
  4. 优化器会对 SQL 语句选择优化器认为最佳的方案进行执行操作
  5. 执行器执行语句并检查权限

img

存储引擎

查命令

当 SQL 命令进入存储引擎后 存储引擎会 首先 尝试 AHI 如果命中不查页哈希表 否则进入 页哈希表查看当前 记录所在页是否存在 buffer pool 中 不存在则从本地硬盘读取所在页进入buffer pool

更新命令

前几步与查命令相同,在修改前会先将当前原始旧数据先写入 Log Buffer 写入 Undo Tablespace, 然后将数据写入 buffer pool 中的 page 同时 将当前数据通过 Log buffer 写入 Redo log, 然后异步更新.

来源

# 5分钟精通MySql的系统框架 Mysql 存储引擎 钝悟