MySQL体系架构

总体框架
在这里插入图片描述
Connectors:支持与各种语言之间的交互
Management Service & Utllities : 系统的管理以及控制工具备份的恢复储存等
Connection Pool:连接池,管理服务端的连接,包括权限验证等
SQL interface:语句的接口,接收用户的sql语句,返回用户需要的返回结果
解析器:词法语法解析,生成解析树
优化器:可得到执行计划
缓存
存储引擎:-
文件系统

模块分析
在这里插入图片描述

一条更新语句是如何执行的?
在这里插入图片描述
update table set name=‘pengyuyan’
1.从内存或磁盘取到数据
2.执行器 将数据改为pengyuyan
3.Undo log redo log
4.Buffer pool name=’pengyuyan’

在这里插入图片描述
若更新的数据在内存中,则直接在内存中修改;若不是唯一性索引,不需查看是否有重复,可将数据修改在Change buffer中,一次性同步到磁盘中{此动作成为merge}。
Change buffer : 5.5之前叫insert buffer只支持插入,现支持插入、修改和删除,针对效率实现的。
Merge:1.访问数据页 2.后台线程 3.shut down 4.redo
Redo log :仅在innodb中 实现 2.属于物理日志 3.大小固定 48M ,写入后面会把前面的覆盖
buffer pool中的脏页写入磁盘时宕机,避免出现这种现象。有一个崩溃恢复的日志文件(ib_logfile)先写日志再写磁盘。
buffer pool:缓存数据信息,索引,存的是数据页或索引页
默认大小128M,若写满,内存淘汰方法,保存热点数据
内存到磁盘文件是随机I/O,日志是顺序I/O,效率高,提升系统吞吐量

系统表空间 独占表空间 通用表空间 临时表空间 undo表空间(事务回滚,逻辑日志)

在这里插入图片描述
1:默认,只要提交事务就把内存中的文件写入log file中,实时写实时刷
0:每秒把log buffer中的数据写入
2:实时写延时刷,每秒执行

MySQL语句执行流程图
在这里插入图片描述
Binlog :逻辑日志,用于数据恢复,主从(slave)

发布了1 篇原创文章 · 获赞 0 · 访问量 35

猜你喜欢

转载自blog.csdn.net/weixin_39209346/article/details/104290530