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 Type | Description |
---|---|
ALLOCATED | 刚分配的页面 |
BLOB | 未压缩的 BLOB 页面 |
COMPRESSED_BLOB2 | 后续 comp BLOB 页面 |
COMPRESSED_BLOB | 第一个压缩的 BLOB 页面 |
EXTENT_DESCRIPTOR | 范围 Descriptors 页面 |
FILE_SPACE_HEADER | 文件空间头 |
IBUF_BITMAP | 插入缓冲区位图 |
IBUF_FREE_LIST | 插入空闲列 table |
IBUF_INDEX | 插入缓冲区索引 |
INDEX | B-tree node |
INODE | Index node |
RTREE_INDEX | R-tree index |
SYSTEM | System page |
TRX_SYSTEM | Transaction 系统数据 |
UNDO_LOG | 撤消日志页面 |
UNKNOWN | Unknown |
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 State | Description |
---|---|
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 节“缓冲池”。