每日 InnoDB缓存池
1. 缓存池
- mysql专用服务器的
80%
的物理内存都会被用来缓存数据 - 为了保证大批量读取操作的效率,
mysql
使用缓存池,缓存池中是以页
为单位,页
中可以存储多个行 - 为了保证高速缓存的
管理效率
,缓存池中的页是一种类似链表
的结构 - 使用
LRU
(least recently used)算法把不经常访问
的数据,会慢慢变得越来越旧
2. LRU
算法
- 默认将
3/8
的空间用来存储旧
(缓存不命中,就会变旧)的数据 - 默认将
5/8
的空间用来存储新
(缓存命中,就会变新)的数据 - 新加入缓存的数据将放到两个List中间的page,即
newSubList -> tail
和oldSubList -> head
- 因为缓存池是有限的,所以缓存的数据如果一直没有被访问,就会越来越接近
oldSubList -> tail
(会被新加入缓存的数据踢
下去),最终被踢出缓存
网友评论