24.32.1 INFORMATION_SCHEMA INNODB_BUFFER_PAGEtable

INNODB_BUFFER_PAGEtable 提供有关InnoDB buffer pool中每个page的信息。

有关相关用法信息和示例,请参见第 14.16.5 节“ InnoDB INFORMATION_SCHEMA 缓冲池 table”

Warning

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

INNODB_BUFFER_PAGEtable 具有以下列:

  • POOL_ID

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

  • BLOCK_ID

缓冲池块 ID。

  • SPACE

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

  • PAGE_NUMBER

页码。

  • PAGE_TYPE

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

table24.1 INNODB_BUFFER_PAGE.PAGE_TYPE 值

Page TypeDescription
ALLOCATED刚分配的页面
BLOB未压缩的 BLOB 页面
COMPRESSED_BLOB2后续 comp BLOB 页面
COMPRESSED_BLOB第一个压缩的 BLOB 页面
EXTENT_DESCRIPTOR范围 Descriptors 页面
FILE_SPACE_HEADER文件空间头
IBUF_BITMAP插入缓冲区位图
IBUF_FREE_LIST插入空闲列 table
IBUF_INDEX插入缓冲区索引
INDEXB-tree node
INODEIndex node
RTREE_INDEXR-tree index
SYSTEMSystem page
TRX_SYSTEMTransaction 系统数据
UNDO_LOG撤消日志页面
UNKNOWNUnknown
  • FLUSH_TYPE

冲洗类型。

  • FIX_COUNT

缓冲池中使用此块的线程数。如果为零,则该块有资格被驱逐。

  • IS_HASHED

是否在此页面上构建了哈希索引。

  • NEWEST_MODIFICATION

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

  • OLDEST_MODIFICATION

最旧的修改的日志序列号。

  • ACCESS_TIME

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

  • TABLE_NAME

页面所属 table 的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。

  • INDEX_NAME

页面所属索引的名称。这可以是聚集索引或辅助索引的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。

  • NUMBER_RECORDS

页面内的记录数。

  • DATA_SIZE

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

  • COMPRESSED_SIZE

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

  • PAGE_STATE

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

table24.2 INNODB_BUFFER_PAGE.PAGE_STATE 值

Page StateDescription
FILE_PAGE缓冲文件页面
MEMORY包含一个主内存对象
NOT_USED在免费 Lists 中
NULL清除压缩页面,刷新列 table 中的压缩页面,用作缓冲池的页面
READY_FOR_USE免费页面
REMOVE_HASH哈希索引应在放入空闲列 table 中之前删除
  • IO_FIX

此页面是否有任何 I/O 待处理:IO_NONE =没有待处理的 I/O,IO_READ =读取待处理,IO_WRITE =写入待处理。

  • IS_OLD

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

  • FREE_PAGE_CLOCK

当该块位于 LRU 列 table 的最前面时,freed_page_clock计数器的值。 freed_page_clock计数器跟踪从 LRU 列 table 末尾删除的块数。

Example

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

Notes

  • 该 table 主要用于 maven 级的性能监控,或者在为 MySQL 开发与性能相关的扩展时很有用。

  • 您必须具有PROCESS特权才能查询此 table。

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

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