如果 初始化缓冲池时 innodb_buffer_pool_chunk_size* innodb_buffer_pool_instances大于当前缓冲池大小, innodb_buffer_pool_chunk_size 则截断为 innodb_buffer_pool_size/ innodb_buffer_pool_instances。

缓冲池大小必须始终等于innodb_buffer_pool_chunk_size *  innodb_buffer_pool_instances的倍数。如果更改 innodb_buffer_pool_chunk_size, innodb_buffer_pool_size 则会自动舍入为等于innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数。初始化缓冲池时会进行调整。

举例说明:

innodb_buffer_pool_size设置为3G,innodb_buffer_pool_instances设置为8。innodb_buffer_pool_chunk_size默认值为128M。

3G是有效的innodb_buffer_pool_size值,因为3G是innodb_buffer_pool_instances = 8 * innodb_buffer_pool_chunk_size = 128M的倍数

innodb_buffer_pool_size设置为3G,innodb_buffer_pool_instances设置为16. innodb_buffer_pool_chunk_size为128M。

3G不是有效的innodb_buffer_pool_size值,因为3G不是innodb_buffer_pool_instances = 16 * innodb_buffer_pool_chunk_size = 128M的倍数,可以看出innodb_buffer_pool_size的值自动调整到4GB。

截断举例:

如果缓冲池初始化的大小为2GB(2147483648字节), 4缓冲池实例和块大小1GB(1073741824字节),则块大小将截断为等于innodb_buffer_pool_size/ 的值innodb_buffer_pool_instances

shell> mysqld --innodb-buffer-pool-size=2147483648 --innodb-buffer-pool-instances=4--innodb-buffer-pool-chunk-size=1073741824;

mysql> SELECT @@innodb_buffer_pool_size;+---------------------------+

| @@innodb_buffer_pool_size |

+---------------------------+

| 2147483648 |

+---------------------------+

mysql> SELECT @@innodb_buffer_pool_instances;+--------------------------------+

| @@innodb_buffer_pool_instances |

+--------------------------------+

| 4 |

+--------------------------------+

# Chunk size wasset to 1GB (1073741824 bytes) onstartup but was

# truncatedto innodb_buffer_pool_size /innodb_buffer_pool_instances

mysql> SELECT @@innodb_buffer_pool_chunk_size;+---------------------------------+

| @@innodb_buffer_pool_chunk_size |

+---------------------------------+

| 536870912 |

+---------------------------------+

注意:innodb_buffer_pool_chunk_size可以以1MB(1048576字节)为单位增加或减少,但只能在启动时,命令行字符串或MySQL配置文件中进行修改。为避免潜在的性能问题,块数(innodb_buffer_pool_size/ innodb_buffer_pool_chunk_size)不应超过1000。更改时应小心 innodb_buffer_pool_chunk_size,因为更改此值可以自动增加缓冲池的大小。在更改之前 innodb_buffer_pool_chunk_size,请计算它将产生的影响, innodb_buffer_pool_size以确保生成的缓冲池大小可以接受

在线缓冲池调整内部

调整大小操作由后台线程执行。增加缓冲池的大小时,调整大小操作:

隐藏在内存中使用新地址的哈希表,列表和指针

将新页面添加到空闲列表

当这些操作正在进行时,其他线程将被阻止访问缓冲池。

减小缓冲池的大小时,调整大小操作:

对缓冲池进行碎片整理并撤消(释放)页面

转换哈希表,列表和指针以在内存中使用新地址

参考:官方文档:

https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size

https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html

mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size相关推荐

  1. mysql服务器端的参数有很多_但是对于大多数初学者来说_mysql优化的重要参数 key_buffer_size table_cache...

    MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢?对于使用Myisam存储引擎来说,主要有key_b ...

  2. mysql设置参数不生效_关于mysql的wait_timeout参数 设置不生效的问题【转】

    关于wait_timeout 有一次去online set wait_timeout 的时候发现改了不生效,如下: mysql> show variables like 'wait_timeou ...

  3. zabbix监控mysql的哪些参数_Centos6.3下zabbix监控mysql数据库参数

    系统环境:centos6.3 x64 mysql:    mysql-5.6.10 zabbix:   zabbix-2.06 一.修改mysql客户端zabbix_agentd.conf配置: # ...

  4. mysql url格式,关于MySql链接url参数的设置

    最近整理了一下网上关于MySql 链接url 参数的设置,有不正确的地方希望大家多多指教: mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:por ...

  5. MySQL服务读取参数文件my.cnf的规律研究探索

    在MySQL中,它是按什么顺序或规律去读取my.cnf配置文件的呢?其实只要你花一点功夫,实验测试一下就能弄清楚,下面的实验环境为5.7.21 MySQL Community Server.其它版本如 ...

  6. mysql异步复制参数_MySQL Replication(异步复制)基本原理

    1.复制进程 Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave).实现整个复制 ...

  7. c mysql maxpoolsize_mysql数据库参数innodb_buffer_pool_size和max_connections

    接到报故,查看mysql数据库以下参数 1.innodb_buffer_pool_size 2.max_connections 该参数定义了数据缓冲区buffer pool大小,类似于oracle的d ...

  8. hibernate mysql自定义变量_hibernate 跟 MySql in的参数变量

    hibernate 和 mysql in的参数变量 Mysql : select appid from mem_apps where appid in (?) 如果?=25,3 那么此语句的结果只有一 ...

  9. mysql 创建带参数的存储过程_在MySQL中创建带有IN和OUT参数的存储过程的方法

    在 MySQL 中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话.如果你通过命令行控制 MySQL,你需要记住准确的语法.一个快速示例可以很好的帮助你做到这点.在 ...

  10. mysql jsp分页技术_一个非常简单的分页技术MYSQL JSP 利用了mysql的LIMIT参数

    一个非常简单的分页技术MYSQL JSP 利用了mysql的LIMIT参数 优点:1自己想出来的 2利用了MYSQL 数据库的本身 LIMIT 缺点:现在仅仅实现了 下一个页面功能 <% int ...

最新文章

  1. 致物理学家的一个实验
  2. android从放弃到精通 第六天 excellent
  3. 点击底部input输入框,弹出的软键盘挡住input(苹果手机使用第三方输入法 )
  4. 学习Spring Boot:(二十)使用 MongoDB
  5. 通用的日志处理类(分享)
  6. java利用redis实现排行榜_Java简单使用redis-zset实现排行榜
  7. 【传】玩转Android---UI篇---ImageButton(带图标的按钮)
  8. GIWAXS数据处理流程详细
  9. php获取省市区区划代码,使用PHP解析行政区划代码
  10. 录制高清微课视频,录屏软件有什么推荐?
  11. 三星固态Dell版的960g的sm863a硬盘
  12. matlab绘制单位球的三维网格图,matlab绘制三维网格图
  13. 高德地图定位坐标偏差android,【报Bug】app端高德地图定位不准确
  14. 在键盘上怎么点出来上下居中的点?
  15. AutoWare install
  16. Tarjan算法超详细讲解(割点割边强连通)
  17. 2021-2027全球与中国空气监测设备市场现状及未来发展趋势
  18. 美团2021校招笔试-编程题-第10场
  19. 思考之——java为什么不能多继承
  20. 软件测试到底要不要报培训班学习?看完这个就知道了

热门文章

  1. js实现23种设计模式
  2. iTunes只能装C盘吗_为什么电脑软件喜欢默认安装在C盘呢?
  3. python制作工资表_Python实用案例:一秒自动生成工资条。
  4. linux 利用缓存文件.swp恢复源文件
  5. 查询SCI期刊分区及影响因子
  6. [SSL_CHX][2021-08-18]圆的面积
  7. C++ -- STL文件解析
  8. Android自定义日历控件
  9. Codeforces 950C Zebras ( 贪心 模拟 )
  10. golang学习(三)—— 数组、切片、map