INNODB_BUFFER_PAGE - xiaoboluo768/mysql-system-schema GitHub Wiki

  • 该表提供查询关于buffer pool中的页相关的信息
  • 注意:

* 对该表的查询操作可能会导致明显的性能下降(此表主要用于专家级性能监视、或者为MySQL开发性能相关的扩展使用),所以,除非必须,否则不要在生产环境中对该表进行查询,如果确有需要查询该表,可以使用tcpdump生产环境的网络流量到一个测试实例中,并在测试实例中查询该表

* 当删除表、表中的数据行、分区表的某个分区、或表的索引时,相关联的页将仍然保留在缓冲池中,直到其他数据需要更多的缓冲池空间时才会从缓冲池中驱逐这些页,当这些页被驱逐时才会更新INNODB_BUFFER_PAGE表中的记录信息

  • 查询该表需要用户具有PROCESS权限,该表为Memory引擎临时表
  • 表定义语句
CREATE TEMPORARY TABLE `INNODB_BUFFER_PAGE` (
  `POOL_ID` bigint(21) unsigned NOT NULL DEFAULT '0',
  `BLOCK_ID` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SPACE` bigint(21) unsigned NOT NULL DEFAULT '0',
  `PAGE_NUMBER` bigint(21) unsigned NOT NULL DEFAULT '0',
  `PAGE_TYPE` varchar(64) DEFAULT NULL,
  `FLUSH_TYPE` bigint(21) unsigned NOT NULL DEFAULT '0',
  `FIX_COUNT` bigint(21) unsigned NOT NULL DEFAULT '0',
  `IS_HASHED` varchar(3) DEFAULT NULL,
  `NEWEST_MODIFICATION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `OLDEST_MODIFICATION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `ACCESS_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `TABLE_NAME` varchar(1024) DEFAULT NULL,
  `INDEX_NAME` varchar(1024) DEFAULT NULL,
  `NUMBER_RECORDS` bigint(21) unsigned NOT NULL DEFAULT '0',
  `DATA_SIZE` bigint(21) unsigned NOT NULL DEFAULT '0',
  `COMPRESSED_SIZE` bigint(21) unsigned NOT NULL DEFAULT '0',
  `PAGE_STATE` varchar(64) DEFAULT NULL,
  `IO_FIX` varchar(64) DEFAULT NULL,
  `IS_OLD` varchar(3) DEFAULT NULL,
  `FREE_PAGE_CLOCK` bigint(21) unsigned NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8
  • 表字段含义
  • POOL_ID:buffer pool instance ID。用于区分多个缓冲池实例的标识符ID
  • BLOCK_ID:缓冲池块ID
  • SPACE:表空间ID。与INNODB_SYS_TABLES表中的SPACE列值相同
  • PAGE_NUMBER:页编号
  • PAGE_TYPE:页类型。有效值为:ALLOCATED(新分配的页面)、INDEX(BTREE节点页)、UNDO_LOG(undo日志页面)、INODE(索引节点页)、IBUF_FREE_LIST(插入缓冲区空闲列表页)、IBUF_BITMAP(插入缓冲区位图页)、SYSTEM(系统页)、TRX_SYSTEM(事务系统数据页)、FILE_SPACE_HEADER(文件空间头部页)、EXTENT_DESCRIPTOR(区块描述符页)、BLOB(未压缩的BLOB页)、COMPRESSED_BLOB(First 压缩 BLOB 页)、COMPRESSED_BLOB2(Subsequent 压缩 BLOB页)、IBUF_INDEX(插入缓冲索引页)、RTREE_INDEX(RTREE索引页)、UNKNOWN(未知页)
  • FLUSH_TYPE:刷新类型
  • FIX_COUNT:在缓冲池中使用该块的线程数。当该列值为零时,该区块将被驱逐
  • IS_HASHED:在此页上是否构建了hash索引
  • NEWEST_MODIFICATION:最新发生修改的LSN号
  • OLDEST_MODIFICATION:最早发生修改的LSN号
  • ACCESS_TIME:表示页首次被访问时间的抽象数字
  • TABLE_NAME:页所属的表名称,该列仅适用于INDEX类型的页
  • INDEX_NAME:页所属的索引名称,索引包括聚集索引或二级索引的名称。该列仅适用于INDEX类型的页
  • NUMBER_RECORDS:页内包含的记录数
  • DATA_SIZE:页内包含的记录的总数据字节大小。该列仅适用于INDEX类型的页
  • COMPRESSED_SIZE:压缩页的页大小。对于未压缩的页该列值为空
  • PAGE_STATE:页状态。有效值为:NULL(表示该页是干净的压缩页或者是flush列表中的压缩页或者是用作缓冲池watch sentinels的页)、NOT_USED(表示该页在空闲列表中)、READY_FOR_USE(表示该页为未分配的空闲页)、FILE_PAGE(表示该页为缓冲文件页)、MEMORY (表该页包含一个主内存对象)、REMOVE_HASH(表示该页在被放入空闲列表之前需要删除散列索引)
  • IO_FIX:表示该页是否有I/O操作被挂起:IO_NONE表示没有的I/O操作被挂起、IO_READ 表示该页有读操作被挂起、IO_WRITE 表示该页有写入操作被挂起
  • IS_OLD:表示块是否位于LRU列表中旧块的子列表中
  • FREE_PAGE_CLOCK:表示freed_page_clock计数器的值。 freed_page_clock计数器用于跟踪从LRU列表的末尾移除的块的数量
  • 表记录内容示例
root@localhost : information_schema 11:50:15> select * from INNODB_BUFFER_PAGE limit 1\G;
*************************** 1. row ***************************
            POOL_ID: 0
          BLOCK_ID: 0
              SPACE: 0
        PAGE_NUMBER: 7
          PAGE_TYPE: SYSTEM
        FLUSH_TYPE: 1
          FIX_COUNT: 0
          IS_HASHED: NO
NEWEST_MODIFICATION: 25646701632
OLDEST_MODIFICATION: 0
        ACCESS_TIME: 1508663684
        TABLE_NAME: NULL
        INDEX_NAME: NULL
    NUMBER_RECORDS: 0
          DATA_SIZE: 0
    COMPRESSED_SIZE: 0
        PAGE_STATE: FILE_PAGE
            IO_FIX: IO_NONE
            IS_OLD: NO
    FREE_PAGE_CLOCK: 0
1 row in set (0.07 sec)
  • PS:该表中记录的信息与show engine innodb status语句和show status like '%buffer_pool%';语句的输出信息中一些页的统计信息类似,他们是基于相同数据集输出的,如下
# show engine语句
root@localhost : (none) 11:15:59> show engine innodb status\G;
............
----------------------
BUFFER POOL AND MEMORY
----------------------
Total large memory allocated 1099431936
Dictionary memory allocated 106991
Buffer pool size  65528
Free buffers      65165
Database pages    363
Old database pages 0
Modified db pages  0
Pending reads      0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 328, created 35, written 39
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 363, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
............

# show status语句
root@localhost : (none) 11:18:06> show status like '%buffer_pool%';
+---------------------------------------+--------------------------------------------------+
| Variable_name                        | Value                                            |
+---------------------------------------+--------------------------------------------------+
| Innodb_buffer_pool_dump_status        | Dumping of buffer pool not started              |
| Innodb_buffer_pool_load_status        | Buffer pool(s) load completed at 180204 14:41:11 |
| Innodb_buffer_pool_resize_status      |                                                  |
| Innodb_buffer_pool_pages_data        | 363                                              |
| Innodb_buffer_pool_bytes_data        | 5947392                                          |
| Innodb_buffer_pool_pages_dirty        | 0                                                |
| Innodb_buffer_pool_bytes_dirty        | 0                                                |
| Innodb_buffer_pool_pages_flushed      | 39                                              |
| Innodb_buffer_pool_pages_free        | 65165                                            |
| Innodb_buffer_pool_pages_misc        | 0                                                |
| Innodb_buffer_pool_pages_total        | 65528                                            |
| Innodb_buffer_pool_read_ahead_rnd    | 0                                                |
| Innodb_buffer_pool_read_ahead        | 0                                                |
| Innodb_buffer_pool_read_ahead_evicted | 0                                                |
| Innodb_buffer_pool_read_requests      | 1718                                            |
| Innodb_buffer_pool_reads              | 329                                              |
| Innodb_buffer_pool_wait_free          | 0                                                |
| Innodb_buffer_pool_write_requests    | 515                                              |
+---------------------------------------+--------------------------------------------------+
18 rows in set (0.01 sec)

上一篇:INNODB_SYS_FIELDS表 |下一篇:INNODB_FT_DEFAULT_STOPWORD表

⚠️ **GitHub.com Fallback** ⚠️