InnoDB缓冲池概念

缓冲池通过【LRU List,Free List,Flush List】算法管理数据页

LRU List:管理最近读取的数据页和索引页

实际的数据页和索引页是按照B+树结构组织并存储在缓冲池中的;

两者相辅相成:LRU列表负责页面的替换策略,B+树负责数据的组织和检索

传统LRU算法:频繁使用的页在LRU列表的前端,最少使用的页在LRU列表的尾端;当缓冲池不能存放新读取到的页时,将首先释放LRU列表中尾端的数据页

InnoDB缓冲池的LRU算法

LRU列表中加入midpoint位置,新读取到的页存放到midpoint位置;

midpoint之前的列表称为new列表;【存放热点数据】

midpoint后的列表称为old列表

为什么需要加入Midpoint位置

如果直接将读取到页放入到LRU的首部,那么某些SQL操作可能会使缓冲池中的页被刷新出,影响缓冲池的效率;【例如索引或者数据的扫描操作,这类操作可能需要访问的数据页,而这些数据页可能只在该查询中存在,并不

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java之项目解析+八股文 文章被收录于专栏

针对Java简历中项目的功能进行提问,大家可以在评论区中解答/讨论;同时提供八股文

全部评论

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务