Mysql之BufferPool中chunk的使用及说明

 更新时间:2025年11月12日 17:09:26   作者:小志的博客  
InnoDB通过将BufferPool划分为若干个chunk来优化内存管理,避免了每次调整大小时的耗时操作,每个chunk代表一片连续的内存空间,包含缓冲页和控制块,BufferPool有2个实例,每个实例包含2个chunk,通过innodb_buffer_pool_chunk_size可以指定chunk的大小

BufferPool中chunk的概述

由于每次调整Buffer Pool的大小时,都需要重新向操作系统申请一块连续的内存空间,然后将旧的Buffer Pool中的内容复制到这一块新空间,但是这种操作是极其耗时的。

所以,InnoDB不再一次性为某个Buffer Pool实例向操作系统申请一大片连续的内存空间,而是以一个chunk为单位向操作系统申请空间。

也就是说,一个Buffer Pool实例其实是由若干个chunk组成的。一个chunk就代表一片连续的内存空间,里面包含了若干缓冲页与其对应的控制块。

Buffer Pool包含2个实例

每个实例里包含2个chunk。

  • 如下图所示:

通过innodb_buffer_pool_chunk_size指定chunk的大小

  • 如下图所示:

【注】:8388608/1024/1024=8MB, innodb_buffer_pool_chunk_size的值并不包含缓冲页对应的控制块的内存空间大小。

因为有chunk这个概念,那么针对上图来看,BufferPool中是存在两个实例的,并且每个BufferPool实例中,又是存在两个chunk的。

而当服务器运行的时候,如果有需要调整BufferPool容量大小的情况发生,那么,就可以针对chunk为维度去执行新增或删除BufferPool内存空间的操作。

如果没有chunk的话,那么我们针对BufferPool容量调整的操作,就需要以BufferPool为维度了,那么必然需要向操作系统再次申请一大片的内存空间,然后再进行缓冲页的拷贝操作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql中的int(5)到底有是多长

    mysql中的int(5)到底有是多长

    这篇文章主要介绍了mysql中的int(5)到底有是多长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 教您修复mysql数据库的方法

    教您修复mysql数据库的方法

    你可能在使用MySQL过程中,各种意外导致数据库表的损坏,而且这些数据往往是最新的数据,通常不可能在备份数据中找到。本章将继上篇文章中检查出表的问题后,告诉你如何修复表
    2014-05-05
  • ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2
    2014-02-02
  • MySQL分区之子分区详解

    MySQL分区之子分区详解

    子分区(subpartition)是分区表中对每个分区的再次分割,又被称为复合分区,下面这篇文章主要给大家介绍了关于MySQL分区之子分区的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • mysql使用SQLyog导入csv数据不成功的解决方法

    mysql使用SQLyog导入csv数据不成功的解决方法

    给mysql导入数据,选中某个表选择导入--导入使用本地csv数据即可,单有的时候不知道什么问题导入不成功
    2014-07-07
  • MySQL表级锁使用说明

    MySQL表级锁使用说明

    这篇文章主要为大家介绍了MySQL表级锁使用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 浅谈MySQL使用笛卡尔积原理进行多表查询

    浅谈MySQL使用笛卡尔积原理进行多表查询

    这篇文章主要介绍了浅谈MySQL使用笛卡尔积原理进行多表查询, 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MySQL 字符串拆分实例(无分隔符的字符串截取)

    MySQL 字符串拆分实例(无分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分实例(无分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • MySQL实例crash的案例详细分析

    MySQL实例crash的案例详细分析

    这篇文章主要给大家介绍了关于MySQL实例crash的相关资料,文中通过示例代码的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Idea连接MySQL数据库出现中文乱码的问题

    Idea连接MySQL数据库出现中文乱码的问题

    这篇文章主要介绍了Idea连接MySQL数据库出现中文乱码的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论