You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

InnoDB缓冲池Unzip_LRU列表是什么?为何及何时使用?

关于InnoDB缓冲池Unzip_LRU列表的作用与适用场景

为什么需要Unzip_LRU列表

首先明确前提:InnoDB支持页压缩(可通过innodb_compression_level配置压缩级别),磁盘上的压缩页加载到缓冲池前必须先解压。如果直接把解压后的页放到主LRU列表里,会带来两个核心问题:

  • 解压后的页体积远大于原压缩页,会快速挤占缓冲池空间,可能把主LRU里的常用未压缩页挤出去,降低缓存命中率。
  • 很多解压页是临时使用的(比如一次性报表查询、单次批量读取),没必要长期留在主LRU里,属于缓存资源的浪费。

Unzip_LRU就是为解决这些问题而生的:它是一个独立的LRU列表,专门存放刚完成解压的临时页,采用比主LRU更激进的淘汰策略(更快移除不常用的页),既能隔离临时解压页对主LRU的干扰,又能高效利用缓冲池空间。

另外,Unzip_LRU的大小可通过innodb_unzip_lru_size配置,默认占缓冲池总大小的5%左右。如果Unzip_LRU里的页被再次访问,会被转移到主LRU列表,保证真正常用的解压页能被长期缓存。

适用场景

  • 大量访问压缩表的业务场景:如果数据库中有很多大表启用了页压缩,且业务频繁查询这些表,会持续产生大量解压页。Unzip_LRU可以将这些临时页隔离,避免它们挤占主LRU中核心热数据的缓存位置。
  • 临时查询/报表类场景:比如跑一次性的统计报表、数据导出等操作,需要读取大量压缩页但只用一次。Unzip_LRU的激进淘汰策略会快速清理这些临时页,不会污染主LRU的缓存状态,保证业务核心查询的缓存命中率不受影响。
  • 缓冲池空间紧张的环境:当缓冲池总大小有限时,Unzip_LRU能更高效分配缓存资源——把有限的空间优先留给主LRU里的常用数据,而临时解压页只在Unzip_LRU中短暂停留,避免不必要的空间占用。

内容的提问来源于stack exchange,提问作者haedoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:51:36