也⾏呀~ 默认情况下Buffer Pool只有128M⼤⼩。当然如果你嫌
弃这个128M太⼤或者太⼩,可以在启动服务器的时候配
置innodb_buffer_pool_size参数的值,它表示Buffer Pool
的⼤⼩,就像这样:
[server]
innodb_buffer_pool_size = 268435456
其中,268435456的单位是字节,也就是我指定Buffer Pool的⼤
⼩为256M。需要注意的是,Buffer Pool也不能太⼩,最⼩值
为5M(当⼩于该值时会⾃动设置成5M)。
Buffer Pool内部组成
Buffer Pool中默认的缓存⻚⼤⼩和在磁盘上默认的⻚⼤⼩是⼀样
的,都是16KB。为了更好的管理这些在Buffer Pool中的缓存⻚,
设计InnoDB的⼤叔为每⼀个缓存⻚都创建了⼀些所谓的控制信息,
这些控制信息包括该⻚所属的表空间编号、⻚号、缓存⻚在Buffer
Pool中的地址、链表节点信息、⼀些锁信息以及LSN信息(锁和LSN
我们之后会具体唠叨,现在可以先忽略),当然还有⼀些别的控制信
息,我们这就不全唠叨⼀遍了,挑重要的说嘛~
每个缓存⻚对应的控制信息占⽤的内存⼤⼩是相同的,我们就把每个
⻚对应的控制信息占⽤的⼀块内存称为⼀个控制块吧,控制块和缓存
⻚是⼀⼀对应的,它们都被存放到 Buffer Pool 中,其中控制块被存
放到 Buffer Pool 的前边,缓存⻚被存放到 Buffer Pool 后边,所以
整个Buffer Pool对应的内存空间看起来就是这样的:
文档被以下合辑收录
评论