mysql innodb缓冲池_InnoDB 缓冲池

InnoDB 缓冲池

InnoDB 维护一个称为缓冲池的存储区域, 用于缓存内存中的数据和索引

缓冲池的大小当然是越大越好 (为服务器上的其他进程留下足够的内存)

InnoDB 已块的形式存储缓存 通过以下参数配置缓存大小

// 查看总缓存大小

show global variables like 'innodb_buffer_pool_size';

// 查看每个缓存池的大小

show global variables like 'innodb_buffer_pool_chunk_size';

// 缓存池的数量

show global variables like 'innodb_buffer_pool_instances';

总缓存大小必须是 ( 每个缓存池的大小 * 缓存池的数量 ) 的倍数

当设置的innodb_buffer_pool_size不是 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances倍数时 那么mysql会自动调整 innodb_buffer_pool_size 的大小 ( 向上取值到 最近的一次倍数 )

# 如

innodb_buffer_pool_size = 9G

innodb_buffer_pool_chunk_size = 128M

innodb_buffer_pool_instances = 16

128*16 = 2048M

那么 9G 不是 2048M 的倍数 则 innodb_buffer_pool_size 自动向上取最近的一个为2048M倍数的值 10G

设置缓存池大小

动态设置

SET GLOBAL innodb_buffer_pool_size = 402653184;

# 配置文件

[mysqld]

innodb_buffer_pool_size = 134217728

配置多个缓冲池

将缓冲池划分为多个单独的实例,通过减少不同线程读取和写入缓存的争用来提高并发性

此功能通常适用于千兆范围内的系统

innodb_buffer_pool_instances 默认值为 1

调整参数 将 innodb_buffer_pool_instances 最大可设置为64个

将每个缓存池的大小至少分配到1G或更高

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值