首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
MySQL——InnoDB引擎架构
返回列表
发新帖
MySQL——InnoDB引擎架构
[复制链接]
发表于 2025-5-6 16:17:17
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
目录
1.InnoDB引擎架构
2.架构-内存架构
2.1Buffer Pool
2.2Change Buffer
2.21ChangeBuffer意义
2.3自顺应hash
2.4日记缓冲区
3.架构-磁盘架构
3.1System Tablespace
3.2File-Per-Table Tablesspaces
3.3General Tablesspaces
3.4UndoTablespaces
3.5 Temporary Tablespaces
3.6Doublewrite Buffer Files
3.7Redo Log
4.架构-后台线程
5.总结
1.InnoDB引擎架构
MySQL5.5
版本
开始,默认使用InnoDB
存储
引擎,它擅长事务处理,具有瓦解规复特性,在一样平常开辟中使用非常广泛。下面是InnoDB架构图,左侧为内存结构,右侧为磁盘结构。
2.架构-内存架构
2.1Buffer Pool
没有缓冲池,每一次操作都要去操作磁盘空间,造成大量的磁盘IO,非常浪费
性能
2.2Change Buffer
子要针对非唯一二级索引,我们举行增删改操作,在BufferPool不存在的时间,不归去直接操作磁盘,先把数据的变动缓存在ChangeBuffer中,未来读取数据再合并到buff
erp
ool
2.21ChangeBuffer意义
与聚集索引差异,二级索引通常是非唯一的,并且以相对随机的次序插入二级索引。同样,删除和更新大概会影响索引树中不相邻的二级索引页,如果每一次都操作磁盘,会造成大量的磁盘IO。有了changebuffer之后,我们可以在缓冲池中举行合并处理,减少磁盘IO
2.3自顺应hash
2.4日记缓冲区
参数:innodb_log_size;缓冲区大小
innodb_flush_log_at_trx_commit;日记革新到磁盘机遇
3.架构-磁盘架构
3.1System Tablespace
3.2File-Per-Table Tablesspaces
每一个ibd文件都是duli的表空间
3.3General Tablesspaces
通用表空间需要我们自己去创建,并且指定关联的表空间,用的不多了解一下就行
3.4UndoTablespaces
3.5 Temporary Tablespaces
3.6Doublewrite Buffer Files
3.7Redo Log
4.架构-后台线程
磁盘架构和内存架构我们都了解了,那么内存架构是怎么写到是怎么写到磁盘架构呢
这重要作用就是后台线程
1.Master Thread
核心后台线程,负责调度其他线程,还负责将缓冲池中的数据异步革新到磁盘中,保持数据的一致性,还包括脏页的革新,合并插入缓存,undo页的接纳
2.IO Thread
在InnoDB
存储
引擎中大量使用了AIO来处理哀求这样可以极大提高
数据库
的
性能
,而IOThread重要负责这些IO哀求的回调
3.Purge Thread
重要用于接纳事务已经提交了的undo log,在事务提交之后undo log肯能不消了,就用它往返收
4.Page Clear Thread
协助Master Thread革新脏页到磁盘的线程,可以减轻MasterThread工作压力,减少阻塞
5.总结
当我们去操作MySQL的时间先去操作缓冲区,如果缓冲区没有数据会将磁盘中的数据加载回来,然后再
存储
在缓冲区中,我么在增删改的时间都去操作缓冲区,然后缓冲区中的数据 会以肯定频率通过后台线程写道磁盘架构中举行永久化保存
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
Java
物联网
立聪堂德州十三局店
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表