- 磁盘文件中有很多的数据页,每个数据页存放了很多行数据。
- 当要更新一行数据,数据库会在找到这行数据所在的数据页,然后从磁盘文件里把这行数据所在的数据页直接给加载到Buffer Pool中去。也就是说Buffer Pool中存放的是一个个数据页(缓存页)。
- 默认情况下,一个缓存页的大小和磁盘上一个数据页的大小是一一对应的,都是16KB。
- 对于每个缓存页,都会有一个描述信息,用来描述这个缓存页的:所属表空间、数据页编号、在Buffer Pool中的地址和其他。在Buffer Pool中每个缓存页的描述数据放在最前面,各个缓存页放在后面。
- Buffer Pool中的描述数据相当于缓存页大小的5%左右,即800B左右,假设设置的Buffer Pool大小是128MB,实际真正的最终大小会超出一些,可能有130MB,因为里面还要存放每个缓存页的描述数据。
- 数据库只要一启动,就会按照设置的Buffer Pool大小,稍微再加大一点,去找操作系统申请一块内存区域。申请完毕后,数据库就会按照默认的缓存页的16KB大小以及对应的800B左右的描述数据大小,在Buffer Pool中划分区域。

