架构剖析

请求流程

Mysql 架构

1. 连接层

1. Connection pool

作用:

  1. 客户端与服务器建立 TCP 连接
  2. 查询用户对应权限,判定用户能够进行哪些操作
  3. 控制连接个数和连接的复用

2. 服务层

1. Sql 接口

  1. 接收 SQL 命令
  2. 返回查询结果

2. 解析器

  1. 解析 SQL 语句
  2. 生成解析树
  3. 验证用户权限

3. 优化器

  1. 生成执行计划
  2. 明确索引使用
  3. 采用选取-投影-连接进行查询

4. 查询缓存

  1. 记录查询结果
  2. key-value 形式存储

引擎层

  1. 数据存储提取
  2. 维护底层数据执行