网站大量收购闲置独家精品文档,联系QQ:2885784924

从0开始带你成为MySQL实战高手12 Buffer Pool这个内存数据结构到底长个什么样子.pdfVIP

从0开始带你成为MySQL实战高手12 Buffer Pool这个内存数据结构到底长个什么样子.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

图文12BufferPool这个内存数据结构到底长个什么样子?手机观看

328人次阅读2020-02-0608:47:19

详情评论

BufferPool这个内存数据结构到底长个什么样子?

如何提问:每篇文章都有评论区,大家可以尽情留言提问,我会逐一答疑

如何加群:购买狸猫技术窝专栏的小伙伴都可以加入狸猫技术交流群,一个非常纯粹的技术交流的地方

具体加群方式,请参见目录菜单下的文档:《MySQL专栏付费用户如何加群》(购买后可见)

1、如何配置你的BufferPool的大小?

首先我们来看看,我们应该如何配置你的BufferPool到底有多大呢?

因为BufferPool本质其实就是数据库的一个内存组件,你可以理解为他就是一片内存数据结构,所以这个内存数据结构肯定是

有一定的大小的,不可能是无限大的。

这个BufferPool默认情况下是128MB,还是有一点偏小了,我们实际生产环境下完全可以对BufferPool进行调整。

比如我们的数据库如果是16核32G的机器,那么你就可以给BufferPool分配个2GB的内存,使用下面的配置就可以了。

[server]

innodb_buffer_pool_size=2147483648

如果有的朋友不知道数据库的配置文件在哪里以及如何修改其中的配置,那建议可以先在网上搜索一些MySQL入门的资料去

看看,其实这都是最基础和简单的。

我们先来看一下下面的图,里面就画了数据库中的BufferPool内存组件。

2、数据页:MySQL中抽象出来的数据单位

接着我们来看下一个问题,假设现在我们的数据库中一定有一片内存区域是BufferPool了,那么我们的数据是如何放在Buffer

Pool中的?

我们都知道数据库的核心数据模型就是表+字段+行的概念,也就是说我们都知道数据库里有一个一个的表,一个表有很多字

段,然后一个表里有很多行数据,每行数据都有自己的字段值。所以大家觉得我们的数据是一行一行的放在BufferPool里面的

吗?

这就明显不是了,实际上MySQL对数据抽象出来了一个数据页的概念,他是把很多行数据放在了一个数据页里,也就是说我

们的磁盘文件中就是会有很多的数据页,每一页数据里放了很多行数据,如下图所示。

所以实际上假设我们要更新一行数据,此时数据库会找到这行数据所在的数据页,然后从磁盘文件里把这行数据所在的数据页

直接给加载到BufferPool里去

也就是说,BufferPool中存放的是一个一个的数据页,如下图。

3、磁盘上的数据页和BufferPool中的缓存页是如何对应起来的?

实际上默认情况下,磁盘中存放的数据页的大小是16KB,也就是说,一页数据包含了16KB的内容。

而BufferPool中存放的一个一个的数据页,我们通常叫做缓存页,因为毕竟BufferPool是一个缓冲池,里面的数据都是从磁

盘缓存到内存去的。

而BufferPool中默认情况下,一个缓存页的大小和磁盘上的一个数据页的大小是一一对应起来的,都是16KB。

所以我们看下图,我给图中的BufferPool标注出来了他的内存大小,假设他是128MB吧,然后数据页的大小是16KB。

4、缓存页对应的描述信息是什么?

接着我们要了解下一个概念,对于每个缓存页,他实际上都会有一个描述信息,这个描述信息大体可以认为是用来描述这个缓

存页的

比如包含如下的一些东西:这个数据页所属的表空间、数据页的编号、这个缓存页在BufferPool中的地址以及别的一些杂七杂

八的东西。

每个缓存页都会对应一个描述信息,这个描述信息本身也是一块数据,在BufferPool中,每个缓存页的描述数据放在最前面,

然后各个缓存页放在后面

所以此时我们看下面的图,BufferPool实际看起来大概长这个样子。

您可能关注的文档

文档评论(0)

奎奎 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档