- • 预读:为顺序读提前加载相邻区数据页
- • 预读页常无人访问,却占据 LRU 头部
- • 全表扫描一次性灌入全表数据页
- • 结果:热数据被挤到尾部,淘汰时被误杀
- • 冷区占 37%:innodb_old_blocks_pct
- • 新页一律先进冷区头部
- • 1 秒后再访问才晋升热区:innodb_old_blocks_time
- • 热区只有后 3/4 的访问才移动头部
- • 淘汰永远从冷区尾部开始
- • 定时刷 LRU 冷区尾部(未雨绸缪)
- • 空闲时刷 flush 链表脏页
- • 没有空闲页时现场淘汰冷区尾部
- • 冷热隔离思想可迁移到 Redis:热门数据预加载