mysql的innodb_buffer_pool_size

用于缓存索引和数据的内存大小,数据读写在内存中非常快, 减少了对磁盘的读写。 当数据提交或满足检查点条件后才一次性将内存数据刷新到磁盘中。

参数说明

Innodb_buffer_pool_pages_data缓存池中包含数据的页的数目,包括脏页。单位是page。
eg:show global status like 'Innodb_buffer_pool_pages_data';

Innodb_buffer_pool_pages_total缓存池中包含数据的页总数目。单位是page。
eg:show global status like 'Innodb_buffer_pool_pages_total';
Innodb_page_size
innodb_page_size 作为 innodb 和 OS 交互单位。文件系统对文件的 buffer IO,也是 page 为单位进行处理的。Linux 的默认 page 的大小 4096 字节,当要将数据写入到文件的时候,会先在内存里,然后将对应的 page cache,整个的从内存刷到磁盘上。但是如果要写入的文件区域,因为还没有被缓存或者被置换出去了等原因,在内存里不存在对应的 page cache,则需要先将对应 page 的内容从磁盘上读到内存里,修改要写入的数据,然后在将整个 page 写回到磁盘;在这种情况下,会有一次额外的读 IO 开销,IO 的性能会有一定的损失。假如 mysql 的 16K 的页表数据支持起,那就是一次内存 IO 光是虚拟地址到物理地址的转换就要去内存查 4 次页表,再算上真正的内存访问,需要 5 次内存 IO 才能获取一个内存数据。

eg:select @@innodb_page_size/1024/1024/1024;  #字节转换为G

调整Innodb_page_size的大小为4G,如果不设置默认为128M

set  global  Innodb_page_size = 4227858432;

计算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%
当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用物理内存的 75%
当结果 < 95% 则减少 innodb_buffer_pool_size, 
建议设置大小为: Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值