内存的数据页是在buffer pool 中管理的。在WAL里Buffer pool起到了加速更新的作用。
buffer pool还能加速查询
当事务提交时候,内存的数据是新的,磁盘上的数据是旧的。如果一个查询要来读这个数据页,直接读内存。
innodb_buffer_pool_size 来设置buffer_pool的大小,一般设置为物理可用内存的60%-80%

InnoDB LRU算法

最近最少使用(Least Recently Used,LRU)算法
LRU是个链表结构,InnoDB按5:3的比例将LRU链表分成了young区和old区
数据初次加载时放到old区,再次访问该数据页,判断该数据页在lru中超过1秒(默认,innodb_old_blocks_time),则将数据移到链表的头部
淘汰数据的时候淘汰old区的尾部