Mysql体系结构
- connection Pool:用户鉴权、 连接处理、安全管理
- service&utilties:管理服务&工作集:备份恢复、安全管理、集群管理服务&工具
- sql interface:接受用户的SQL命令并处理
- Parser:sql解析器,解析查询语句,生成语法树,解析器会查询缓存
- Optimizer:查询优化器,对查询语句进行优化,选择合适索引
- Cache:全局缓存和session缓存
- Pluggable Storage Engines:存储引擎层,一种文件访问机制,与文件交互,插件式存储引擎
一条Select的执行轨迹
tips:开启了query cache才会使用缓存
存储引擎及其分类
简介:
MySQL中具体与文件打交道的子系统,根据MySQL AB公司提供的文件访问层抽象接口定制的一种文件访问机制。mysql5.6以前使用的是MyISAM,之后用的是InnoDB
InnoDB存储引擎体系结构
实例层
tips:脏页是什么?内存与磁盘数据不一致称为脏页,否则为干净页
实例层分为内存与线程
- master thread:负责调度其他各线程,内部包含主循环(1s与10s)、后台循环、刷新循环
- buf dump thread负责把buffer pool中的内容dump到物理文件中,以便快速加热数
- page cleaner thread负责把buffer pool中的脏页刷新到磁盘,5.7版本后出现(之前在主循环完成)
- purge tread:清理不再使用的undo日志
- read/write tread:处理用户读/写请求,从磁盘读出数据页/数据页写入磁盘
- insert thread:将insert buffer内存写入磁盘
- Buffer Pool包含数据和索引页、undo页、insert buffer页、自适应hash索引页、数据字典页和锁信息等
物理层
- 系统表空间
- 用户表空间
- redo