MySQL 8.0 配置InnoDB缓冲池大小

在线配置InnoDB缓冲池大小

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

监控在线缓冲池大小调整进度

该 Innodb_buffer_pool_resize_status 变量报告一个字符串值,指示缓冲池大小调整进度;例如:

mysql> SHOW STATUS WHERE Variable_name='InnoDB_buffer_pool_resize_status';
+----------------------------------+----------------------------------+
| Variable_name                    | Value                            |
+----------------------------------+----------------------------------+
| Innodb_buffer_pool_resize_status | Resizing also other hash tables. |
+----------------------------------+----------------------------------+

以下查询返回一个指示缓冲池大小调整进度的字符串值、指示操作当前阶段的代码以及该阶段的当前进度(以百分比值表示):

SELECT variable_name, variable_value 
 FROM performance_schema.global_status 
 WHERE LOWER(variable_name) LIKE "innodb_buffer_pool_resize%";

在线缓冲池调整内部大小

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

  • 添加页面chunks(块大小由 定义 innodb_buffer_pool_chunk_size)

  • 转换哈希表、列表和指针以使用内存中的新地址

  • 将新页面添加到空闲列表

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

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

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

  • 删除中的页面chunks(块大小由 定义 innodb_buffer_pool_chunk_size)

  • 转换哈希表、列表和指针以使用内存中的新地址

其中,只有对缓冲池进行碎片整理和撤回页面才允许其他线程并发访问缓冲池。

参考链接

配置InnoDB缓冲池大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值