2-buffer pool
2024-08-05 17:44:39 0 举报
mysql buffer pool
作者其他创作
大纲/内容
MySQL
一行数据一行数据一行数据一行数据一行数据一行数据
描述数据2
Buffer Pool缓冲池
磁盘文件
2、写入描述数据
加载数据页到缓冲池
基础节点count=n
磁盘文件中有很多数据页,每个数据页有很多行数据。默认情况下,磁盘中存放的数据页的大小是16KB。Buffer Pool中存放的一个一个的数据页,我们通常叫做缓存页,因为毕竟Buffer Pool是一个缓冲池,里面的数据都是从磁盘缓存到内存去的。对于每个缓存页,他实际上都会有一个描述信息,这个描述信息大体可以认为是用来描述这个缓存页的。比如包含如下的一些东西:这个数据页所属的表空间、数据页的编号、这个缓存页在Buffer Pool中的地址以及别的一些杂七杂八的东西。每个缓存页都会对应一个描述信息,这个描述信息本身也是一块数据,在Buffer Pool中,每个缓存页的描述数据放在最前面,然后各个缓存页放在后面Buffer Pool中的描述数据大概相当于缓存页大小的5%左右,也就是每个描述数据大概是800个字节左右的大小,然后假设你设置的Buffer Pool大小是128MB,实际上Buffer Pool真正的最终大小会超出一些,可能有个130多MB的样子,因为他里面还要存放每个缓存页的描述数据。
缓存页1
描述数据地址
1、获取一个空闲的缓存页
1、首先,我们需要从free链表里获取一个描述数据块,然后就可以对应的获取到这个描述数据块对应的空闲缓存页。2、接着我们就可以把磁盘上的数据页读取到对应的缓存页里去,同时把相关的一些描述数据写入缓存页的描述数据块里去,比如这个数据页所属的表空间之类的信息,最后把那个描述数据块从free链表里去除就可以了。
表空间号+数据页号:缓存页表空间号+数据页号:缓存页表空间号+数据页号:缓存页表空间号+数据页号:缓存页表空间号+数据页号:缓存页表空间号+数据页号:缓存页...
描述数据1
数据页
缓存页2
数据页缓存哈希表
磁盘中的数据页读取到缓存的空闲页上
Buffer Pool(128M)
4、从链表删除
0 条评论
下一页