1,整体架构
- 客户端:各种语言 SDK,图形化管理工具,用来给 MySql 服务器发送请求
- 服务器,一个独立的进程,用来处理客户端的请求
- 连接器:管理缓存客户端的连接(连接池)
- 分析器:对 SQL 语言进行词法,语法分析,判断是否可执行(AST 语法分析树)
- 优化器:对 SQL 进行优化调整,使用 MySql 认为最优的执行计划
- CBO:基于成本优化
- RBO:基于规则优化
- 执行器:按照最优的执行计划执行上述的 SQL
物理层:通过指定的存储引擎用不同的文件格式将数据持久化到磁盘文件
2,MySql 的存储引擎
1,InnoDB
.frm:存储表结构或者元数据
-
2,Myisam
.frm:存储表结构或者元数据
- .MYD:存储真实的数据(MY Data)
- .MYI:存储索引数据(MY Index)
3,MySql 的日志
1,Bin Log
属于服务器,用来实现主从复制,默认不开启2,Undo Log
属于 InnoDB 存储引擎,用来实现原子性3,Redo Log
属于 InnoDB 存储引擎,用来实现持久性