该表提供有关缓冲池中INNODB_BUFFER_PAGE_LRU页面的信息 ;特别是,它们在 LRU 列表中的排序方式,该列表决定了 当缓冲池满了时要从缓冲池中 逐出哪些页面。InnoDB
该INNODB_BUFFER_PAGE_LRU表的列与表相同, INNODB_BUFFER_PAGE但有几点不同。它有LRU_POSITION和 COMPRESSED列,而不是 BLOCK_ID和PAGE_STATE 列,并且它不包括和IS_STALE 列。
有关使用信息和示例,请参见 第 17.15.5 节“InnoDB INFORMATION_SCHEMA 缓冲池表”。
警告
查询该INNODB_BUFFER_PAGE_LRU 表可能会影响性能。除非您了解性能影响并确定其可接受,否则请勿在生产系统上查询此表。为避免影响生产系统的性能,请重现您要调查的问题并在测试实例上查询缓冲池统计信息。
该INNODB_BUFFER_PAGE_LRU表包含以下列:
-
POOL_ID缓冲池 ID。这是用于区分多个缓冲池实例的标识符。
-
LRU_POSITION页面在 LRU 列表中的位置。
-
SPACE表空间 ID;与 的值相同
INNODB_TABLES.SPACE。 -
PAGE_NUMBER页码。
-
PAGE_TYPE页面类型。下表显示了允许的值。
表 28.6 INNODB_BUFFER_PAGE_LRU.PAGE_TYPE 值
页面类型 描述 ALLOCATED新分配的页面 BLOB未压缩的 BLOB 页 COMPRESSED_BLOB2后续 comp BLOB 页面 COMPRESSED_BLOB第一个压缩的 BLOB 页 ENCRYPTED_RTREE加密 R 树 EXTENT_DESCRIPTOR范围描述符页 FILE_SPACE_HEADER文件空间头 FIL_PAGE_TYPE_UNUSED未使用 IBUF_BITMAP插入缓冲区位图 IBUF_FREE_LIST插入缓冲区空闲列表 IBUF_INDEX插入缓冲区索引 INDEXB 树节点 INODE索引节点 LOB_DATA未压缩的 LOB 数据 LOB_FIRST未压缩的 LOB 的第一页 LOB_INDEX未压缩的 LOB 索引 PAGE_IO_COMPRESSED压缩页面 PAGE_IO_COMPRESSED_ENCRYPTED压缩并加密的页面 PAGE_IO_ENCRYPTED加密页面 RSEG_ARRAY回滚段数组 RTREE_INDEXR树索引 SDI_BLOB未压缩的 SDI BLOB SDI_COMPRESSED_BLOB压缩 SDI BLOB SDI_INDEXSDI 指数 SYSTEM系统页面 TRX_SYSTEM交易系统数据 UNDO_LOG撤消日志页面 UNKNOWN未知 ZLOB_DATA压缩 LOB 数据 ZLOB_FIRST压缩 LOB 的第一页 ZLOB_FRAG压缩的 LOB 片段 ZLOB_FRAG_ENTRY压缩 LOB 碎片索引 ZLOB_INDEX压缩 LOB 索引 -
FLUSH_TYPE齐平型。
-
FIX_COUNT缓冲池中使用此块的线程数。当为零时,该块可以被逐出。
-
IS_HASHED该页面是否已经建立了哈希索引。
-
NEWEST_MODIFICATION最新修改的日志序列号。
-
OLDEST_MODIFICATION最早修改的日志序列号。
-
ACCESS_TIME用于判断页面首次访问时间的一个抽象数字。
-
TABLE_NAME该页所属的表的名称。此列仅适用于值为
PAGE_TYPE的页。如果服务器尚未访问该表,INDEX则为 。NULL -
INDEX_NAME页面所属索引的名称。这可以是聚集索引或二级索引的名称。此列仅适用于值为
PAGE_TYPE的页面INDEX。 -
NUMBER_RECORDS页面内的记录数。
-
DATA_SIZE记录大小总和。此列仅适用于值为
PAGE_TYPE的 页面INDEX。 -
COMPRESSED_SIZE压缩后的页面大小。
NULL对于未压缩的页面。 -
COMPRESSED页面是否被压缩。
-
IO_FIX该页面是否有任何待处理的 I/O:
IO_NONE= 没有待处理的 I/O,IO_READ= 读取待处理,IO_WRITE= 写入待处理。 -
IS_OLD该块是否位于 LRU 列表的旧块子列表中。
-
FREE_PAGE_CLOCKfreed_page_clock当块最后被放置在 LRU 列表的头部时计数器 的值。freed_page_clock计数器跟踪从 LRU 列表末尾移除的块数。
例子
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G
*************************** 1. row ***************************
POOL_ID: 0
LRU_POSITION: 0
SPACE: 97
PAGE_NUMBER: 1984
PAGE_TYPE: INDEX
FLUSH_TYPE: 1
FIX_COUNT: 0
IS_HASHED: YES
NEWEST_MODIFICATION: 719490396
OLDEST_MODIFICATION: 0
ACCESS_TIME: 3378383796
TABLE_NAME: `employees`.`salaries`
INDEX_NAME: PRIMARY
NUMBER_RECORDS: 468
DATA_SIZE: 14976
COMPRESSED_SIZE: 0
COMPRESSED: NO
IO_FIX: IO_NONE
IS_OLD: YES
FREE_PAGE_CLOCK: 0
笔记
- 该表主要用于专家级性能监控,或者开发 MySQL 性能相关的扩展。
- 您必须具有
PROCESS查询该表的权限。 - 使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关该表的列的附加信息,包括数据类型和默认值。 - 查询此表可能需要 MySQL 分配一大块连续内存,其大小超过缓冲池中活动页数的 64 字节倍数。这种分配可能会导致内存不足错误,尤其是对于具有多 GB 缓冲池的系统。
- 查询此表需要 MySQL 在遍历 LRU 列表时锁定代表缓冲池的数据结构,这会降低并发性,尤其是对于具有多 GB 缓冲池的系统。
- 当表、表行、分区或索引被删除时,相关页面将保留在缓冲池中,直到其他数据需要空间为止。表会
INNODB_BUFFER_PAGE_LRU报告有关这些页面的信息,直到它们从缓冲池中被逐出。有关如何管理缓冲池数据的更多信息InnoDB,请参见 第 17.5.1 节“缓冲池”。




