langjitianyaluotongxue

导航

12 Buffer Pool这个内存数据结构到底长个什么样子?

1.如何配置你的 buffer pool 的大小?

Buffer Pool可以看做是一个内存组件,默认的大小是128Mb,在实际生产中可以进行大小的调整

比如我们的数据库是16核32G的机器,那么你可以给Buffer pool分配2G的内存,使用以下配置:

[server]
innodb_buffer_pool_size = 2147483648

2.数据页:Mysql中抽象出来的数据单位

我们的数据库中的一片内存区域 Buffer pool,数据是怎么保存在这片内存里的?

mysql对数据抽象出来一个数据页的概念,也就是多行数据可以放在一个数据页里,放在磁盘中,我们的磁盘里会有很多数据页,每一页都放了很多数据

 

 所以我们要更新某一行数据的时候,这时候数据库会找到这行数据所在的数据页,然后把这行数据所在的数据页给加载到Buffer pool里,也就是说Buffer pool 里存放的是一个一个的数据页

3.磁盘上的数据页和buffer pool上的缓存页是怎么对应起来的?

磁盘中的一个数据页的大小是16kb,也就是一页数据包含16kb的数据,而buffer pool上一一对应的数据页也叫做缓存页大小也是16kb

4.缓存页对应的描述信息是什么?

每个缓存页都有一个描述信息,这个描述信息是描述这个缓存页的,比如这个数据页所属的表空间,数据页的编号,这个缓存页在buffer pool中的地址,每个缓存页都有一个描述信息,描述信息在前面,缓存页在后,描述信息的大小相当于缓存页大小的5%

 

posted on 2022-09-16 14:26  浪迹天涯骆同学  阅读(34)  评论(0编辑  收藏  举报