MySQL参数 之 innodb_buffer_pool_size

Innodb_buffer_pool_size

《深入浅出MySQL》一文中这样描述Innodb_buffer_pool_size:

      该参数定义了 InnoDB 存储引擎的表数据和索引数据的最大内存缓冲区大小。和 MyISAM 存储引擎不同,MyISAM 的 key_buffer_size只缓存索引键, 而 innodb_buffer_pool_size 却是同时为数据块和索引块做缓存,这个特性和 Oracle 是一样的。这个值设得越高,访问 表中数据需要的磁盘 I/O 就越少。在一个专用的数据库服务器上,可以设置这个参数达机器 物理内存大小的 80%。尽管如此,还是建议用户不要把它设置得太大,因为对物理内存的竞 争可能在操作系统上导致内存调度。

     将书的话解释过来就是该参数代表了用来缓存索引数据和表数据的内存大小,数据在内存中的读写速度是磁盘读写速度的很多倍,当数据满足条件后才将内存中的数据刷入磁盘中,innodb利用缓存池来帮助延迟写入,合并多个写入操作顺序写入磁盘。

     先弄清以下几个点:

1.InnoDB缓存池存储什么

InnoDB缓存池缓存索引、行的数据、自适应哈希索引、插入缓存(Insert Buffer)、锁 还有其他的内部数据结构。(所以,如果数据库的数据量不大,并且没有快速增长,就不必为缓存池分配过多的内存,当为缓存池配置的内存比需要缓存的表和索引大很多也没什么必要,会造成资源浪费。)

2.缓存池过大也会带来一些困扰

      a.很大的缓存池可能会有很多脏页,导致InnoDB在关闭的时候会消耗很长的时间,因为要把脏页写回到数据文件里

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值