架构
- 一图流
数据库连接池
- 不管是 server 方还是 mysql,都需要维护一个 数据库连接池
-
网络请求和接收
server 方通过网络发送要执行的 sql 语句,mysql 会利用一个线程监听网络请求,然后读取解析里面的 sql 语句
sql 接口
- mysql 的一个组件
- mysql 中监听网络请求的线程会将解析到的 sql 语句交付给 sql接口
- sql 接口会将 sql 交付给 查询解析器
查询解析器(parser)
- mysql 的一个组件
- 图中的 sql 解析器
- 按照既定的SQL语法,负责解析 sql 语句的具体含义
- 然后交付给 查询优化器
查询优化器(Optimizer)
- mysql 的一个组件
- 会根据 sql 语句生成查询路径树,然后从中选择一条最优的查询路径
- 然后将这个最优的查询路径作为计划任务交付给 执行器
执行器
- 根据执行计划不停的调用 存储引擎 的各种接口去完成 sql 语句的执行计划
存储引擎
- 有多种存储引擎,比如 Innodb 等
- 不同的存储引擎有不同的适用场景
- 存储引擎是真正执行 sql 语句的,提供进行查询内存缓存数据,更新磁盘数据等操作的接口