Documentation Home
MySQL 8.0 参考手册  / 第 26 章 INFORMATION_SCHEMA 表  / 26.4 INFORMATION_SCHEMA InnoDB 表  /  21.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表

21.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表

INNODB_BUFFER_PAGE表提供有关缓冲池中每个页面的信息。 InnoDB

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

警告

查询INNODB_BUFFER_PAGE 表会影响性能。不要在生产系统上查询此表,除非您了解性能影响并确定它是可以接受的。为避免影响生产系统的性能,请重现您要调查的问题并在测试实例上查询缓冲池统计信息。

INNODB_BUFFER_PAGE表有以下列:

  • POOL_ID

    缓冲池 ID。这是区分多个缓冲池实例的标识符。

  • BLOCK_ID

    缓冲池块 ID。

  • SPACE

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

  • PAGE_NUMBER

    页码。

  • PAGE_TYPE

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

    表 21.4 INNODB_BUFFER_PAGE.PAGE_TYPE 值

    页面类型 描述
    ALLOCATED 新分配的页面
    BLOB 未压缩的 BLOB 页面
    COMPRESSED_BLOB2 随后的 comp BLOB 页面
    COMPRESSED_BLOB 第一个压缩的 BLOB 页
    EXTENT_DESCRIPTOR 范围描述符页面
    FILE_SPACE_HEADER 文件空间头
    IBUF_BITMAP 插入缓冲区位图
    IBUF_FREE_LIST 插入缓冲区空闲列表
    IBUF_INDEX 插入缓冲区索引
    INDEX B树节点
    INODE 索引节点
    SYSTEM 系统页面
    TRX_SYSTEM 交易系统数据
    UNDO_LOG 撤消日志页面
    UNKNOWN 未知

  • 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

    压缩页面大小。NULL对于未压缩的页面。

  • PAGE_STATE

    页面状态。下表显示了允许的值。

    表 21.5 INNODB_BUFFER_PAGE.PAGE_STATE 值

    页面状态 描述
    FILE_PAGE 缓冲文件页
    MEMORY 包含一个主内存对象
    NOT_USED 在空闲列表中
    NULL 清除压缩页面,刷新列表中的压缩页面,用作缓冲池监视哨兵的页面
    READY_FOR_USE 免费页面
    REMOVE_HASH 在放入空闲列表之前应删除哈希索引

  • IO_FIX

    此页面是否有任何 I/O 挂起: IO_NONE= 没有挂起的 I/O, IO_READ= 读挂起, IO_WRITE= 写挂起。

  • IS_OLD

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

  • FREE_PAGE_CLOCK

    freed_page_clock当块最后被放置在 LRU 列表的头部时计数器 的值。freed_page_clock计数器跟踪从 LRU 列表末尾删除的块数 。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE LIMIT 1\G
*************************** 1. row ***************************
            POOL_ID: 0
           BLOCK_ID: 0
              SPACE: 97
        PAGE_NUMBER: 2473
          PAGE_TYPE: INDEX
         FLUSH_TYPE: 1
          FIX_COUNT: 0
          IS_HASHED: YES
NEWEST_MODIFICATION: 733855581
OLDEST_MODIFICATION: 0
        ACCESS_TIME: 3378385672
         TABLE_NAME: `employees`.`salaries`
         INDEX_NAME: PRIMARY
     NUMBER_RECORDS: 468
          DATA_SIZE: 14976
    COMPRESSED_SIZE: 0
         PAGE_STATE: FILE_PAGE
             IO_FIX: IO_NONE
             IS_OLD: YES
    FREE_PAGE_CLOCK: 66

笔记

  • 该表主要用于专家级性能监控,或在为 MySQL 开发与性能相关的扩展时使用。

  • 您必须具有PROCESS 查询此表的权限。

  • 使用INFORMATION_SCHEMA COLUMNS表或 SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

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