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 值
页类型 描述 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
的页。如果服务器尚未访问该表,则该列为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 值
页面状态 描述 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_SCHEMA
COLUMNS
表或SHOW COLUMNS
语句查看有关此表列的更多信息,包括数据类型和默认值。当删除表、表行、分区或索引时,关联的页面会保留在缓冲池中,直到需要空间存储其他数据为止。
INNODB_BUFFER_PAGE
表会报告有关这些页面的信息,直到它们从缓冲池中被逐出。有关InnoDB
如何管理缓冲池数据的更多信息,请参阅“第 17.5.1 节 “缓冲池””。