美文网首页
InnoDB LRU

InnoDB LRU

作者: LoveEachDay | 来源:发表于2019-05-12 21:14 被阅读0次

    InnoDB将LRU链表分为两个部分,也就是所谓的`old区` 和 `young区`。

    `young区`在链表的头部,存放经常被访问的数据页,可以理解为热数据

    `old区`在链表的尾部,存放不经常被访问的数据页,可以理解为冷数据

    这两个部分的交汇处称为`midpoint`, 怎么知道两个区的比例呢?

    ```

    show variables like 'innodb_old_blocks_pct';

    ```

    InnoDB LRU 链表

    数据何时在old区,何时进入young 区?

    数据页第一次被加载进Buffer Pool时在`old区`的头部。当这个数据页在`old区`,再次被访问到,会做如下的判断:

    如果这个数据页在LRU链表中的`old区` 存在的时间超过了1秒,就把它移动到`young区`。

    这个存在时间由`innodb_old_blocks_time`控制。

    相关文章

      网友评论

          本文标题:InnoDB LRU

          本文链接:https://www.haomeiwen.com/subject/vxyhaqtx.html