zoukankan      html  css  js  c++  java
  • mysql的缓存

    mysql的缓存

    每次访问一个页的记录需要把整个页加载进一个叫bufferpool的内存区中,即使访问结束页还处于bufferpool中,再次访问该页可以直接从内存中读。

    用哈希表来判断页到底缓存了还是没有缓存(用表空间号和页号作为key)

    页存入bufferpool中涉及到三个特殊的链表:

    1、free链表:可用的内存块。

    2、flush链表:如果修改了某个内存中的页使数据与磁盘不一致了这个页称为脏页,脏页组成flush链表,有专门的线程负责刷新脏页到链表。

    3、特殊的LRU链表,用来完成缓存功能,mysql还做了许多其他的优化,将LRU表分为young区和old区,访问间隔短不会将其移动到young区,这都是为了防止预读和全表查询刷新LRU链表,只有页处于young区的后1/4时才能被移动等优化手段。

  • 相关阅读:
    8-JS闭包、回调实例
    7-闭包、回调
    6-JS函数(二)
    5-JS函数
    4-JS对象
    3-WebPack
    2-Babel
    1-NPM
    25-React事件处理及条件渲染
    java初始化笔记
  • 原文地址:https://www.cnblogs.com/yinyunmoyi/p/11562333.html
Copyright © 2011-2022 走看看