1.为啥要使用buffer pool
buffer pool是基于内存的,可以在磁盘中加载一些数据进来,进行增删改操作.
以此来减少了直接对磁盘的增删改的io操作,可以让增删改尽量在缓存中进行提升了性能
buffer pool如何配置
buffer pool默认值大小是128M
innodb_buffer_pool_size=xxx字节
设置buffer pool为3G(为128的倍数) buffer pool块数为8
mysqld --innodb_buffer_pool_size=3G --innodb_buffer_pool_instances=8 &
查看buffer pool相关配置
show variables like 'innodb_buffer_pool%';
2.buffer pool中如何存放缓存数据
在buffer pool中有一页一页的数据页,还有这个数据页相对于的描述数据块
每一个数据页的大小为16kb,而他的描述数据块是800字节的大小(为缓存页的5%左右)
所以实际的buffer pool默认值应该是在130m左右
3.由于支持多并发所以Buffer pool是由多个chunk块组成的
chunk块默认值大小是128M
innodb_buffer_pool_chunk_size=128M
如果给buffer pool加内存直接给他添加chunk块就行了
4.buffer pool总大小=(chunk大小*buffer pool数量)的2倍数
buffer pool为机器内存的50%-60%左右