逻辑架构
概述
MySQL逻辑架构分为3层
- 连接层
- Connection Pool:提供多个与客户端进行连接的线程
- 服务层
- SQL Interface:接收SQL命令,返回查询结果
- Parser:对SQL语句进行语法解析、语义解析,生成语法树
- Optimizer:对解析结果进行优化,生成一个执行计划
- Caches & Buffers:查询缓存,以key-value的方式缓存查询语句和结构
- 引擎层
- Storage Engines:负责MySQL中数据的存储和提取,与底层文件系统进行交互
SQL请求流程
SQL请求流程如下:
- SQL接口接收客户端发来的SQL请求
- 查询缓存:如果在在缓存中发现了这条SQL语句,直接返回结果。因为缓存的是SQL语句而不是执行计划,所以命中率很低
- 解析器进行语法解析、语义解析,生成语法树
- 优化器对解析结果进行优化
- 调用存储引擎,与底层文件系统进行交互
- 以key-value的方式对查询语句及其结果进行缓存
- 通过SQL接口返回查询结果