如果 初始化缓冲池时 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

原文:https://www.cnblogs.com/asea123/p/10089910.html

mysql innodbuffer修改_【MySQL参数】-innodb_buffer_pool_chunk_size相关推荐

  1. mysql point 修改_[mysql]修改

    #启动数据库服务 service mysqld start #连接数据库 mysql -u root -password #加载数据 source *.sql #删除数据库: drop databas ...

  2. MySQL数据库变量_数据库参数_MySQL变量_系统变量_用户变量

    文章目录 MySQL 变量分类 系统变量 查看系统变量 设置系统变量 如何通过配置文件来设置变量值 通过命令行选项来设置变量值 动态设置全局级的系统变量 设置静态的系统变量 设置会话级的系统变量 引用 ...

  3. linux mysql配置修改_【Mysql】linux下mysql的配置修改

    1.mysql启动和停止等操作 # /etc/init.d/mysqld start:# service mysqld start:#service mysqld stop :#/etc/init.d ...

  4. pod中mysql配置文件修改_通过configmap更新k8s里的mysql配置文件

    背景: 环境注意:在用rancher搭建的k8s里,mysql是起了一个pod,镜像是网上的mysql:5.7 开发人员提出了一个报错"查询时的ONLY_FULL_GROUP_BY错误&qu ...

  5. mysql引擎修改_如何将MySQL数据库的引擎修改为InnoDB

    如何将MySQL数据库的引擎修改为InnoDB 发布时间:2020-12-19 16:52:25 来源:亿速云 阅读:90 作者:Leah 本篇文章给大家分享的是有关如何将MySQL数据库的引擎修改为 ...

  6. 天龙mysql ip修改_天龙八部服务端IP修改配置

    打开你们的LIUNX上的:home\tlbb\Billing\etc 找到:db_hash.conf   gbs.conf  这两个文件 用写字板打开. 找到 #散列表0: MAXDBCONNS0  ...

  7. mysql服务器修改ip,mysql数据库修改服务器ip

    mysql数据库修改服务器ip 内容精选 换一换 云数据库RDS服务支持开启公网访问功能,通过弹性公网IP进行访问.您也可通过弹性云服务器的内网访问云数据库RDS.准备弹性云服务器或可通过公网访问云数 ...

  8. mysql异常恢复工具_[MySQL异常恢复]mysql ibd文件恢复

    在mysql中由于某种原因保存有ibd文件,但是表已经被删除或者frm文件损坏亦或者ibdata文件损坏/丢失等.本文模拟在这种情况下,通过mysql自身技术即可完成ibd文件恢复. 测试环境mysq ...

  9. mysql字符集修改无效,Mysql字符集的修改及查看问题_MySQL

    bitsCN.com Mysql字符集的修改及查看问题 修改及查看mysql数据库的字符集 修改my.cnf vi /etc/my.cnf 在[client]下添加 default-character ...

最新文章

  1. 6.2.Scrapy获取图像
  2. python中内存管理机制一共分为多少层_python 内存管理机制
  3. 【微信小程序企业级开发教程】界面刷新获取新更新数据
  4. 全局统一返回结果包装信息
  5. J2SE理解之一:声明和访问控制
  6. layout_gravity 和 gravity
  7. 路透社:谷歌已停止与华为部分合作;联想否认断供华为PC;微软计划直供Linux内核;谷歌无人机快递Wing进军芬兰……...
  8. java入学测试_算法历练之路——入学考试(JAVA)
  9. mfc之ListControl控件的使用
  10. 自动化接口用例从 1 到 1000 过程中的实践和思考
  11. Linux SendMail发送邮件失败诊断案例(四)
  12. 天涯明月刀手游服务器维护到几点,天涯明月刀手游11月11日服务器维护更新公告...
  13. kali linux 64bit 2019.1a下启动bbqsql:No module named coros
  14. 坚持不是苦差事,而是一种享受
  15. win10无法自动修复此计算机,Win10 无法启动 自动修复无限循环
  16. 父类声明子类实例化对象详解
  17. 【唐老狮】C#——转义字符
  18. 电子商务html语言及特点,南开18秋学期(1703)《电子商务网页制作》在线作业答案...
  19. 坦克世界 与服务器连接中断,坦克世界连接到更新服务器失败,详细教您怎么解决坦克世界连接到更新服务器失败...
  20. 北京计算机组装在哪,计算机组装与维护(第2版)

热门文章

  1. 第一次用unity b站轻松塔防游戏
  2. Flutter Android 13系统bug android.media.EncoderProfiles$VideoProfile.getWidth()
  3. 新旧系统切换时——页面跳转案例
  4. 计算机毕业设计Java疫苗药品批量扫码识别追溯系统(系统+源码+mysql数据库+Lw文档)
  5. 移动赢得现在,新联通、电信赢得未来
  6. 基于百度人脸识别的小区人脸门禁系统
  7. u3d 总是背向相机_大疆口袋云台相机升级,DJI Pocket 2更大、画质更佳,角度更广,配件更足...
  8. 面试心得(富士康,格力)
  9. javascript文本框不能输入英文引号
  10. HDU 4411Arrest(最小费用最大流)