Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  The INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU Table

28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表

INNODB_BUFFER_PAGE_LRU 表提供了 InnoDB 缓冲池中的页面信息,特别是它们在 LRU 列表中的顺序,该列表确定了从缓冲池中驱逐哪些页面以释放空间。

INNODB_BUFFER_PAGE_LRU 表具有与 INNODB_BUFFER_PAGE 表相同的列,除了以下几点:它具有 LRU_POSITIONCOMPRESSED 列,而不是 BLOCK_IDPAGE_STATE 列,并且不包括 IS_STALE 列。

有关相关使用信息和示例,请参阅 第 17.15.5 节,“InnoDB INFORMATION_SCHEMA 缓冲池表”

Warning

查询 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 值

    Page Type Description
    ALLOCATED 新分配的页面
    BLOB 未压缩的 BLOB 页
    COMPRESSED_BLOB2 后续压缩 BLOB 页
    COMPRESSED_BLOB 首个压缩 BLOB 页
    ENCRYPTED_RTREE 加密的 R 树
    EXTENT_DESCRIPTOR 范围描述符页
    FILE_SPACE_HEADER 文件空间头
    FIL_PAGE_TYPE_UNUSED 未使用
    IBUF_BITMAP 插入缓冲位图
    IBUF_FREE_LIST 插入缓冲空闲列表
    IBUF_INDEX 插入缓冲索引
    INDEX B 树节点
    INODE 索引节点
    LOB_DATA 未压缩的 LOB 数据
    LOB_FIRST 未压缩的 LOB 的第一页
    LOB_INDEX 未压缩的 LOB 索引
    PAGE_IO_COMPRESSED 压缩的页面
    PAGE_IO_COMPRESSED_ENCRYPTED 压缩并加密的页面
    PAGE_IO_ENCRYPTED 加密的页面
    RSEG_ARRAY 回滚段数组
    RTREE_INDEX R 树索引
    SDI_BLOB 未压缩的 SDI BLOB
    SDI_COMPRESSED_BLOB 压缩的 SDI BLOB
    SDI_INDEX SDI 索引
    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 的页。该列为空,如果服务器尚未访问该表。

  • INDEX_NAME

    该页所属的索引名。该列仅适用于 PAGE_TYPE 值为 INDEX 的页。

  • NUMBER_RECORDS

    页中的记录数。

  • DATA_SIZE

    记录的总大小。该列仅适用于 PAGE_TYPE 值为 INDEX 的页。

  • COMPRESSED_SIZE

    压缩页的大小。对于未压缩的页为空。

  • COMPRESSED

    该页是否被压缩。

  • IO_FIX

    该页是否有待定的 I/O 操作:IO_NONE = 无待定 I/O,IO_READ = 读取待定,IO_WRITE = 写入待定。

  • IS_OLD

    该块是否在 LRU 列表的旧块子列表中。

  • FREE_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_SCHEMA COLUMNS 表或 SHOW COLUMNS 语句来查看该表的列信息,包括数据类型和默认值。

  • 查询该表可能需要 MySQL 分配一个大块连续内存,超过 64 字节乘以活动页数。这可能会导致内存不足错误,特别是在具有多 GB 缓冲池的系统上。

  • 查询该表需要 MySQL 锁定缓冲池的数据结构,以便遍历 LRU 列表,这可能会降低并发性,特别是在具有多 GB 缓冲池的系统上。

  • 当表、表行、分区或索引被删除时,关联的页将保留在缓冲池中,直到需要空间来存储其他数据。INNODB_BUFFER_PAGE_LRU 表报告这些页的信息,直到它们被从缓冲池中驱逐。有关 InnoDB 如何管理缓冲池数据的更多信息,请参阅 第 17.5.1 节,“缓冲池”