首先来看看mysql的体系架构:
从图中来开,主要分为了几大部分
- 网络层连接
- 服务层 mysql server
- 存储引擎层
- 系统文件层
我们来看一下 msyql运行的机制
再看一下mysql官网给出的inndb存储架构图
看了很多我们可以通过查询和更新来将这些组件串联起来
查询:
- 查询进入server端,依次进入 连接器 分析器 优化器 执行器
a. 连接器: 进行管理连接,权限验证
b. 分析器:
i. 词法解析:sql语句,识别出里面的字符是干什么的
ii. 语法解析:输入的sql语句是否合法
c. 优化器:
i. 决定使用哪个索引
ii. join的时候,表的连接顺序
d. 执行器:
i. 执行sql语句返回给客户端 - 根据表id和数据页号,通过adaptive hash index 查找缓存hash表
a. hash表:key为 表空间id+数据页号,value为 缓存页面地址值 - 如果查询到了,就直接返