没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论




















格式:pdf 资源大小:49.6KB 页数:1

格式:tar 资源大小:271.0KB



格式:pdf 资源大小:831.0KB 页数:18

Mysql InnoDB 存储引擎详解
介绍省了……………….
2.2 InnoDB 体系架构
体系架构
通过第 章我们了解了 的体系结构,现在可能你想更深入地了解 的架构模型。图 简单显
示了 的存储引擎的体系架构。 有多个内存块,你可以认为这些内存块组成了一个大的内存
池,负责如下工作:
维护所有进程线程需要访问的多个内部数据结构。
缓存磁盘上的数据,方便快速地读取,并且在对磁盘文件的数据进行修改之前在这里缓存。
重做日志()缓冲。
图 体系结构
后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外,将已修改
的数据文件刷新到磁盘文件,同时保证在数据库发生异常情况下 能恢复到正常运行状态。
后台线程
由于 是多进程的架构( 下除外),因此可以通过一些很简单的命令来得知 当前运行
的后台进程,如 命令。一般来说, 的核心后台进程有
!"#$、、%&、'&!、#(、( 等。
很多 ' 问我, 存储引擎是否也是这样的架构,只不过是多线程版本的实现后,我决定去看
的源代码,发现 并不是这样对数据库进程进行操作的。 存储引擎是在一个被称做 )*
*+ 的线程上几乎实现了所有的功能。
默认情况下, 存储引擎的后台线程有 , 个—- 个 *+, 个 )**+, 个锁(.)
监控线程, 个错误监控线程。*+ 的数量由配置文件中的 /0100*+ 参数控制,默认
为 -,如下所示。
)2+/**34%5
666666666666666666666666666666666666666666666666666666
$ 7
()7
**37
8888888888888888888888888888888888888
99,:7;-79;((($&<$#<$
8888888888888888888888888888888888888
#=3*>)*+*?9
@A
*+9**7*>3*B*/3C*+D

*+**7*>3*B*+D
*+**7*>3*B*+D
*+;**7*>3*B**+D
#)79E*79E
/3>79EF79EF79
#G3+B>D795/3C 79
-?1E?H1*E->
999E9=/*E999*E999>
A(@((($&<$#<$
8888888888888888888888888888
*B999D
可以看到,- 个 线程分别是 */3C*+、*+、*+、**+。在
3I 平台下,*+ 的数量不能进行调整,但是在 平台下可以通过参数
/0100*+ 来增大 *+。#3 版本开始增加了默认 *+ 的数量,默认
的 *+ 和 **+ 分别增大到了 - 个,并且不再使用 /0100*+ 参数,而是分
别使用 /000*+ 和 /0*00*+ 参数,如下所示。
)2+=/.F/0=F4%5
666666666666666666666666666666666666666666666666666666
J/0)7/0=
J379H
*B999D
)2+=/.F/0K0*+F4%5
666666666666666666666666666666666666666666666666666666
J/0)7/000*+
J37-
666666666666666666666666666666666666666666666666666666
J/0)7/0*00*+
J37-
*B999D
)2+/**34%5
666666666666666666666666666666666666666666666666666666
$ 7
()7
**37
8888888888888888888888888888888888888
99,:7??7H((($&<$#<$
8888888888888888888888888888888888888
#=3*>)*+*;H
@A

*+9**7*>3*B*/3C*+D
*+**7*>3*B*+D
*+**7*>3*B*+D
*+;**7*>3*B*+D
*+-**7*>3*B*+D
*+?**7*>3*B*+D
*+H**7*>3*B**+D
*+,**7*>3*B**+D
*+L**7*>3*B**+D
*+:**7*>3*B**+D
#)79E*79E
/3>79EF79EF79
#G3+B>D795/3C 79
;:L?H1E,L;9:-,1*EH9:9>
E9=/*E999*E999>
A(@((($&<$#<$
8888888888888888888888888888
*B99D
在 下,我们还可以通过 J3*3 来调试 ,并设置断点来观察所有的线程信息,如图
所示。
图 下 存储引擎的线程
内存
存储引擎内存由以下几个部分组成:缓冲池(/3C )、重做日志缓冲池(/3C)
以及额外的内存池(*)) ),分别由配置文件中的参数 /0/3C0 0M 和
/00/3C0M 的大小决定。以下显示了一台 数据库服务器,它将 存储引擎的缓
冲池、重做日志缓冲池以及额外的内存池分别设置为 ?%、L 和 L(分别以字节显示)。
)2+=/.F/0/3C0 0MF4%5
666666666666666666666666666666666666666666666666666666
J/0)7/0/3C0 0M
J37H--9999
*B999D
)2+=/.F/00/3C0MF4%5
666666666666666666666666666666666666666666666666666666
J/0)7/00/3C0M
J37L;LLH9L
*B999D
)2+=/.F/0*0))0 0MF4%5
666666666666666666666666666666666666666666666666666666
J/0)7/0*0))0 0M
J37L;LLH9L
*B999D
缓冲池是占最大块内存的部分,用来存放各种数据的缓存。因为 的存储引擎的工作方式总是将数据库
剩余16页未读,继续阅读
资源评论


luib88
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 高阶逻辑定理证明:第15届国际会议论文集
- (源码)基于CC++编程语言的简易操作系统.zip
- (源码)基于意图识别的假肢控制系统.zip
- (源码)基于ARM CortexM处理器的迷宫游戏开发.zip
- (源码)基于编程语言的Smart Utility Vehicle.zip
- 基于 MAX78000 与 SSD 目标检测网络的猫咪识别喂食器:借助单片机 CNN 加速器实现神经网络计算
- (源码)基于Python和DGL的图计算实验框架MyPaGraph.zip
- 从零开始设计并训练神经网络,助你透彻理解它
- (源码)基于Python的JSON数据图形化展示系统.zip
- (源码)基于Arduino的传感器读取系统.zip
- 电气工程手册:计算机与数字设备精华
- (源码)基于Arduino框架的IoT环境监控系统.zip
- (源码)基于Python的模拟村庄发展项目-村庄模拟器.zip
- (源码)基于Keil C51编程语言的MCS52单片机打地鼠游戏.zip
- 基于基于常用 CNN 神经网络实现超 30 万条手写数学符号识别
- (源码)基于C++的太阳能飞机控制系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
