Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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 Buffer Pool Tables”

Warning

查询INNODB_BUFFER_PAGE_LRU表可能会影响性能。除非您了解性能影响并确定其可接受,否则不要在生产系统上查询该表。在生产系统上避免影响性能,可以在测试实例中复制问题和查询缓冲池统计信息。

INNODB_BUFFER_PAGE_LRU表具有以下列:

  • POOL_ID

    缓冲池ID。这是一个标识符,用于区分多个缓冲池实例。

  • LRU_POSITION

    LRU列表中的页面位置。

  • SPACE

    表空间ID;与INNODB_TABLES.SPACE相同的值。

  • PAGE_NUMBER

    页面号码。

  • PAGE_TYPE

    页面类型。以下表格显示了允许的值。

    INNODB_BUFFER_PAGE_LRU.PAGE_TYPE 值

    Page Type Description
    ALLOCATED 新分配的页面
    BLOB 未压缩的 BLOB 页面
    COMPRESSED_BLOB2 后续压缩 BLOB 页面
    COMPRESSED_BLOB 首次压缩的 BLOB 页面
    ENCRYPTED_RTREE 加密R树
    EXTENT_DESCRIPTOR extent描述符页
    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_系统 事务系统数据
    UNDO_LOG Undo日志页面
    未知 未知
    ZLOB_数据 压缩LOB数据
    ZLOB_FIRST 压缩LOB的第一页
    ZLOB_FRAG 压缩LOB片段
    ZLOB_FRAG_ENTRY 压缩LOB片段索引
    ZLOB_INDEX 压缩LOB索引

  • FLUSH_类型

    刷新类型。

  • FIX_数量

    缓冲池中使用该块的线程数。当为零时,该块可被驱逐。

  • 是否哈希

    是否在该页面上建立了哈希索引。

  • 最新修改

    最年轻的修改日志序列号。

  • 最古老修改

    最古老的修改日志序列号。

  • 访问时间

    一个抽象数字,用于判断页面的首次访问时间。

  • 表名

    该页面所属表的名称。只有在PAGE_类型值为INDEX时,该列才适用。如果服务器尚未访问该表,则该列为NULL

  • 索引名

    该页所属索引的名称。这可以是聚集索引或次要索引的名称。该列仅适用于具有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_CLOCK

    该块被最后一次移到LRU列表头部时freed_page_clock计数器的值。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 节,“缓冲池”