28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_ PAGE 表
表INNODB_BUFFER_PAGE
提供了页面在缓冲池中的信息。
有关使用信息和示例,请参见第17.15.5节,“InnoDB INFORMATION_ SCHEMA Buffer Pool Tables”。
查询表INNODB_BUFFER_PAGE
可能会影响性能。除非您了解性能影响并确定其可接受,否则不要在生产系统上查询该表。在生产系统上避免影响性能,可以在测试实例上复制问题和查询缓冲池统计信息。
表INNODB_BUFFER_PAGE
具有以下列:
-
POOL_ID
缓冲池ID。这是一个标识符,用于区分多个缓冲池实例。
-
BLOCK_ID
缓冲池块ID。
-
SPACE
表空间ID;与
INNODB_TABLES.SPACE
相同的值。 -
PAGE_NUMBER
页面号码。
-
PAGE_TYPE
页面类型。以下表格显示了允许的值。
Table 28.4 INNODB_BUFFER_PAGE.PAGE_TYPE Values
Page Type Description ALLOCATED
新分配的页面 BLOB
未压缩的 BLOB 页面 COMPRESSED_BLOB2
后续压缩 BLOB 页面 COMPRESSED_BLOB
首个压缩 BLOB 页面 ENCRYPTED_R_TREE
加密 R-树 EXTENT_DESCRIPTOR
extent 描述页面 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_压缩
压缩页面 PAGE_IO_压缩加密
压缩和加密页面 PAGE_IO_加密
加密页面 RSEG_数组
回滚段数组 RTREE_索引
R-树索引 SDI_未压缩BLOB
未压缩SDI BLOB SDI_压缩BLOB
压缩SDI BLOB SDI_索引
SDI 索引 系统
系统页面 TRX_系统
事务系统数据 UNDO_LOG
undo日志页面 未知
未知 ZLOB_数据
压缩LOB数据 ZLOB_首页
压缩LOB的第一页面 ZLOB_碎片
压缩LOB碎片 ZLOB_碎片索引
压缩LOB碎片索引 ZLOB_索引
压缩LOB索引 -
FLUSH_类型
Flush类型。
-
FIX_数量
使用该块的线程数。为零时,该块可被驱逐。
-
IS_哈希
是否已经在该页上建立了哈希索引。
-
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
页状态。以下表格显示了允许的值。
Table 28.5 INNODB_BUFFER_PAGE.PAGE_STATE Values
Page State Description FILE_PAGE
缓冲文件页 MEMORY
包含主要内存对象 NOT_USED
在自由列表中 NULL
清洁压缩页面、flush 列表中的压缩页面、缓冲池监视哨兵页 READY_FOR_USE
一个自由页 REMOVE_HASH
哈希索引在将其放入自由列表之前需要被删除 -
IO_FIX
是否对该页有任何I/O pending:
IO_NONE
= 无pending I/O,IO_READ
= 读取pending,IO_WRITE
= 写入pending,IO_PIN
= relocation 和从flush 列表中删除不允许。 -
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节,“缓冲池”。