langjitianyaluotongxue

导航

2022年9月19日 #

16 简单的LRU链表在Buffer Pool实际运行中,可能导致哪些问题?

摘要: 1.预读会带来一个巨大的问题? 预读机制也就是从磁盘加载一个数据页的时候,也可能连带着把这个数据页相邻的其他的数据页也加载到缓存里去 举个例子,假设现在有两个空闲页,然后在加载数据页的时候也顺带把他相邻的数据页也加载到缓存里,正好每个数据页放一个空闲的缓存页,但是接下来呢,实际上只有一个缓存页被访问 阅读全文

posted @ 2022-09-19 17:40 浪迹天涯骆同学 阅读(22) 评论(0) 推荐(0) 编辑

15 当Buffer Pool中的缓存页不够的时候,如何基于LRU算法淘汰部分缓 存?

摘要: 1.哪些缓存页是脏页? 最终在内存里更新的数据,都是要被刷回磁盘的,不可能所有的缓存页都被刷回磁盘,因为有的缓存页是查询时被读取到Buffer Pool中的,从来没有被修改过,所以数据库引入了一个和free链表类似的flush链表,凡是被修改过的缓存页,都会把他的描述数据块加入到flush链表,fl 阅读全文

posted @ 2022-09-19 15:59 浪迹天涯骆同学 阅读(20) 评论(0) 推荐(0) 编辑

13 从磁盘读取数据页到Buffer Pool的时候,free链表有什么用?

摘要: 1.数据库启动的时候,是如何初始化Buffer Pool的? 数据库一启动就会按照你设置的Buffer Pool的大小,在操作系统里分配一块内存区域,作为Buffer Pool内存区域 当内存区域申请完毕之后,数据库就会按照默认的缓存页16kB的大小以及对应的800个字节左右的描述数据的大小,在Bu 阅读全文

posted @ 2022-09-19 14:04 浪迹天涯骆同学 阅读(25) 评论(0) 推荐(0) 编辑