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








网友评论