该 INNODB_BUFFER_PAGE 表提供了 InnoDB 缓冲池 中每个 页 的信息。
有关相关使用信息和示例,请参阅 第 17.15.5 节,“InnoDB INFORMATION_SCHEMA 缓冲池表”。
查询 INNODB_BUFFER_PAGE 表可能会影响性能。在生产系统上不要查询该表,除非您了解性能影响并认为其可接受。在生产系统上要避免影响性能,可以在测试实例上重现问题并查询缓冲池统计信息。
该 INNODB_BUFFER_PAGE 表具有以下列:
-
POOL_ID缓冲池 ID。这是一个标识符,用于区分多个缓冲池实例。
-
BLOCK_ID缓冲池块 ID。
-
SPACE表空间 ID;与
INNODB_TABLES.SPACE相同。 -
PAGE_NUMBER页号。
-
PAGE_TYPE页类型。以下表显示了允许的值。
表 28.4 INNODB_BUFFER_PAGE.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插入缓冲索引 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。
-
PAGE_STATE该页的状态。下表显示了允许的值。
表 28.5 INNODB_BUFFER_PAGE.PAGE_STATE 值
Page State Description FILE_PAGE缓冲文件页 MEMORY包含主内存对象 NOT_USED在空闲列表中 NULL清洁压缩页、压缩页在刷新列表中、作为缓冲池监视哨兵的页 READY_FOR_USE空闲页 REMOVE_HASH在将页放入空闲列表之前,应该删除哈希索引 -
IO_FIX该页是否有待定的 I/O 操作:
IO_NONE= 无待定 I/O,IO_READ= 读取待定,IO_WRITE= 写入待定,IO_PIN= 不允许重新定位和从刷新列表中删除 -
IS_OLD该块是否在 LRU 列表中的旧块子列表中。
-
FREE_PAGE_CLOCK该块最后被放入 LRU 列表头部时的
freed_page_clock计数器值。freed_page_clock计数器跟踪从 LRU 列表末尾删除的块数。 -
IS_STALE该页是否过时。
示例
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
IS_STALE: NO
注意
-
该表主要用于专家级性能监控或开发 MySQL 的性能相关扩展。
-
您必须拥有
PROCESS权限才能查询该表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句来查看该表的列信息,包括数据类型和默认值。 -
当表、表行、分区或索引被删除时,关联的页将保留在缓冲池中,直到需要空间来存储其他数据。该
INNODB_BUFFER_PAGE表报告这些页的信息,直到它们被从缓冲池中驱逐。有关 InnoDB 如何管理缓冲池数据的更多信息,请参阅 第 17.5.1 节,“缓冲池”。