InnoDB INFORMATION_SCHEMA Buffer Pool Tables

InnoDB INFORMATION_SCHEMA缓冲池表提供有关InnoDB缓冲池中页面的缓冲池状态信息和元数据。

InnoDB INFORMATION_SCHEMA缓冲池表包括下面列出的表:

mysql> SHOW TABLES FROM INFORMATION_SCHEMA LIKE 'INNODB_BUFFER%';
+-----------------------------------------------+
| Tables_in_INFORMATION_SCHEMA (INNODB_BUFFER%) |
+-----------------------------------------------+
| INNODB_BUFFER_PAGE_LRU |
| INNODB_BUFFER_PAGE |
| INNODB_BUFFER_POOL_STATS |
+-----------------------------------------------+
  • INNODB_BUFFER_PAGE:保存InnoDB缓冲池中每个页面的信息。

  • INNODB_BUFFER_PAGE_LRU:保存有关InnoDB缓冲池中页面的信息,特别是它们在LRU列表中的排序方式,确定哪些页面在缓冲池变满时从缓冲池中逐出。 INNODB_BUFFER_PAGE_LRU表与INNODB_BUFFER_PAGE表具有相同的列,但INNODB_BUFFER_PAGE_LRU表具有LRU_POSITION列而不是BLOCK_ID列。

  • INNODB_BUFFER_POOL_STATS:提供缓冲池状态信息。 许多相同的信息由SHOW ENGINE INNODB STATUS输出提供,或者可以使用InnoDB缓冲池服务器状态变量获得。

1. INNODB_BUFFER_PAGE

INNODB_BUFFER_PAGE表包含有关InnoDB缓冲池中每个页面的信息。

有关相关用法信息和示例,请参见第14.15.5节“InnoDB INFORMATION_SCHEMA Buffer Pool Tables”。

警告

查询INNODB_BUFFER_PAGE表可能会影响性能。 除非您了解性能影响并确定其可接受,否则请勿在生产系统上查询此表。 为避免影响生产系统的性能,请重现要调查的问题并在测试实例上查询缓冲池统计信息。

INNODB_BUFFER_PAGE表有以下列:

  • POOL_ID :缓冲池ID。这是区分多个缓冲池实例的标识符。
  • BLOCK_ID :缓冲池块ID。
  • SPACE :表空间ID;与INNODB_SYS_TABLES.SPACE相同的值。
  • PAGE_NUMBER :页码
  • PAGE_TYPE :页面类型。下表显示了允许的值:

  • FLUSH_TYPE :flush 类型
  • FIX_COUNT :缓冲池中使用此块的线程数。当为零时,该区块有资格被驱逐。
  • IS_HASHED :是否已在此页面上构建哈希索引。
  • NEWEST_MODIFICATION:最新修改的日志序列号。
  • OLDEST_MODIFICATION:最旧修改的日志序列号。
  • ACCESS_TIME :用于判断页面首次访问时间的抽象数字。
  • TABLE_NAME :页面所属表格的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • INDEX_NAME :页面所属索引的名称。这可以是聚簇索引或辅助索引的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • NUMBER_RECORDS :页面中的记录数。
  • DATA_SIZE :记录大小的总和。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • COMPRESSED_SIZE :压缩页面大小。对于未压缩的页面,为NULL。
  • PAGE_STATE :页面状态。下表显示了允许的值

  • IO_FIX :此页面是否有任何I/O待处理:IIO_NONE = no pending I/O, IO_READ = read pending, IO_WRITE = write pending.
  • IS_OLD :块是否在LRU列表中的旧块的子列表中。
  • FREE_PAGE_CLOCK :当块最后放置在LRU列表的头部时,freed_pa​​ge_clock计数器的值。 freed_pa​​ge_clock计数器跟踪从LRU列表末尾删除的块数。

Notes

  • 此表主要用于专家级性能监视,或者在为MySQL开发与性能相关的扩展时。

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 删除表,表行,分区或索引时,关联页将保留在缓冲池中,直到其他数据需要空间。 INNODB_BUFFER_PAGE表报告有关这些页面的信息,直到它们从缓冲池中逐出。 有关InnoDB如何管理缓冲池数据的更多信息,请参见第14.6.3.1节“InnoDB缓冲池”。

示例

mysql> 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: 3183743
OLDEST_MODIFICATION: 0
ACCESS_TIME: 1081580410
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 (1.20 sec)

2. INNODB_BUFFER_PAGE_LRU

INNODB_BUFFER_PAGE_LRU表保存有关InnoDB缓冲池中页面的信息; 特别是,如何在LRU列表中对它们进行排序,以确定哪些页面在缓冲池填满时从缓冲池中逐出。

INNODB_BUFFER_PAGE_LRU表与INNODB_BUFFER_PAGE表具有相同的列,但INNODB_BUFFER_PAGE_LRU表具有LRU_POSITION和COMPRESSED列而不是BLOCK_ID和PAGE_STATE列。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA缓冲池表”。

警告

查询INNODB_BUFFER_PAGE_LRU表可能会影响性能。 除非您了解性能影响并确定其可接受,否则请勿在生产系统上查询此表。 为避免影响生产系统的性能,请重现要调查的问题并在测试实例上查询缓冲池统计信息。

INNODB_BUFFER_PAGE_LRU表有以下列:

  • POOL_ID :缓冲池ID。这是区分多个缓冲池实例的标识符。
  • LRU_POSITION :页面在LRU列表中的位置。
  • SPACE :表空间ID;与INNODB_SYS_TABLES.SPACE相同的值。
  • PAGE_NUMBER :页码
  • PAGE_TYPE :页面类型

  • FLUSH_TYPE :flush 类型
  • FIX_COUNT :缓冲池中使用此块的线程数。当为零时,该区块有资格被驱逐。
  • IS_HASHED :是否已在此页面上构建哈希索引。
  • NEWEST_MODIFICATION:最新修改的日志序列号。
  • OLDEST_MODIFICATION:最旧修改的日志序列号。
  • ACCESS_TIME :用于判断页面首次访问时间的抽象数字。
  • TABLE_NAME :页面所属表格的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • INDEX_NAME :页面所属索引的名称。这可以是聚簇索引或辅助索引的名称。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • NUMBER_RECORDS :页面中的记录数。
  • DATA_SIZE :记录大小的总和。此列仅适用于PAGE_TYPE值为INDEX的页面。
  • COMPRESSED_SIZE :压缩页面大小。对于未压缩的页面,为NULL
  • COMPRESSED :页面是否被压缩。
  • IO_FIX :此页面是否有任何I / O待处理。IO_NONE = no pending I/O, IO_READ = read pending, IO_WRITE = write pending.
  • IS_OLD :块是否在LRU列表中的旧块的子列表中。
  • FREE_PAGE_CLOCK :当块最后放置在LRU列表的头部时,freed_pa​​ge_clock计数器的值。 freed_pa​​ge_clock计数器跟踪从LRU列表末尾删除的块数。

Notes

  • 此表主要用于专家级性能监视,或者在为MySQL开发与性能相关的扩展时。

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 查询此表可能需要MySQL分配大块连续内存,超过缓冲池中活动页数的64字节。此分配可能会导致内存不足错误,尤其是对于具有多千兆字节缓冲池的系统。

  • 查询此表需要MySQL在遍历LRU列表时锁定表示缓冲池的数据结构,这会降低并发性,尤其是对于具有多GB缓冲池的系统。

  • 删除表,表行,分区或索引时,关联页将保留在缓冲池中,直到其他数据需要空间。 INNODB_BUFFER_PAGE_LRU表报告有关这些页面的信息,直到它们从缓冲池中逐出。有关InnoDB如何管理缓冲池数据的更多信息,请参见“InnoDB缓冲池”。

示例

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G
*************************** 1. row ***************************
POOL_ID: 0
LRU_POSITION: 0
SPACE: 0
PAGE_NUMBER: 7
PAGE_TYPE: SYSTEM
FLUSH_TYPE: 1
FIX_COUNT: 0
IS_HASHED: NO
NEWEST_MODIFICATION: 3183743
OLDEST_MODIFICATION: 0
ACCESS_TIME: 1081580410
TABLE_NAME: NULL
INDEX_NAME: NULL
NUMBER_RECORDS: 0
DATA_SIZE: 0
COMPRESSED_SIZE: 0
COMPRESSED: NO
IO_FIX: IO_NONE
IS_OLD: NO
FREE_PAGE_CLOCK: 0
1 row in set (0.01 sec)

3. INNODB_BUFFER_POOL_STATS

INNODB_BUFFER_POOL_STATS表提供了SHOW ENGINE INNODB STATUS输出中提供的大部分相同的缓冲池信息。 使用InnoDB缓冲池服务器状态变量也可以获得大部分相同的信息。

使页面在缓冲池中“年轻”或“不年轻”的想法是指在缓冲池数据结构的头部和尾部的子列表之间传送它们。 “年轻”的页面需要更长的时间才能从缓冲池中老化,而“非年轻”的页面则更接近于驱逐点。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA缓冲池表”。

INNODB_BUFFER_POOL_STATS表有以下列:

  • POOL_ID :缓冲池ID。这是区分多个缓冲池实例的标识符。
  • POOL_SIZE :InnoDB页面中 的缓冲池大小。
  • FREE_BUFFERS :InnoDB 缓冲池中 的空闲页数。
  • DATABASE_PAGES :InnoDB包含数据 的缓冲池中的页数。此数字包括脏页面和干净页面。
  • OLD_DATABASE_PAGES :旧缓冲池子列表中的页数。
  • MODIFIED_DATABASE_PAGES :修改(脏)数据库页面的数量。
  • PENDING_DECOMPRESS :待解压缩的页数。
  • PENDING_READS :待处理读数。
  • PENDING_FLUSH_LRU :LRU中待刷新的页数。
  • PENDING_FLUSH_LIST :刷新列表中待刷新的页数。
  • PAGES_MADE_YOUNG :新的页面数量。
  • PAGES_NOT_MADE_YOUNG :旧的页面数量
  • PAGES_MADE_YOUNG_RATE :每秒生成的页数(自上次打印输出/时间过后生成的新页面)。
  • PAGES_MADE_NOT_YOUNG_RATE :每秒未生成的页数(自上次打印输出/经过时间以来未生成新页面)。
  • NUMBER_PAGES_READ :读取的页数。
  • NUMBER_PAGES_CREATED :创建的页数。
  • NUMBER_PAGES_WRITTEN :写的页数。
  • PAGES_READ_RATE :每秒读取的页数(自上次打印输出/经过时间以来读取的页数)。
  • PAGES_CREATE_RATE :每秒创建的页数(自上次打印输出/时间过后创建的页数)。
  • PAGES_WRITTEN_RATE :每秒写入的页数(自上次打印输出/经过时间以来写入的页数)。
  • NUMBER_PAGES_GET :逻辑读取请求的数量。
  • HIT_RATE :缓冲池命中率。
  • YOUNG_MAKE_PER_THOUSAND_GETS :The number of pages made young per thousand gets.
  • NOT_YOUNG_MAKE_PER_THOUSAND_GETS:The number of pages not made young per thousand gets.
  • NUMBER_PAGES_READ_AHEAD :提前读取的页数。
  • NUMBER_READ_AHEAD_EVICTED :由预读后台线程读入InnoDB缓冲池的页面数,随后在没有被查询访问的情况下被逐出。
  • READ_AHEAD_RATE :每秒预读速率(自上次打印输出/经过时间以来预读的页数)。
  • READ_AHEAD_EVICTED_RATE :每秒无法访问的预读页数(自上次打印输出/时间过后未读取的预读页面)。
  • LRU_IO_TOTAL :Total LRU I/O.
  • LRU_IO_CURRENT :当前间隔的LRU I / O.
  • UNCOMPRESS_TOTAL :解压缩的总页数。
  • UNCOMPRESS_CURRENT :在当前间隔中解压缩的页数。

Notes

此表主要用于专家级性能监视,或者在为MySQL开发与性能相关的扩展时。

您必须具有PROCESS权限才能查询此表。

使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

示例

mysql> select * from INNODB_BUFFER_POOL_STATS limit 1\G
*************************** 1. row ***************************
POOL_ID: 0
POOL_SIZE: 24573
FREE_BUFFERS: 24262
DATABASE_PAGES: 311
OLD_DATABASE_PAGES: 0
MODIFIED_DATABASE_PAGES: 0
PENDING_DECOMPRESS: 0
PENDING_READS: 0
PENDING_FLUSH_LRU: 0
PENDING_FLUSH_LIST: 0
PAGES_MADE_YOUNG: 0
PAGES_NOT_MADE_YOUNG: 0
PAGES_MADE_YOUNG_RATE: 0
PAGES_MADE_NOT_YOUNG_RATE: 0
NUMBER_PAGES_READ: 55
NUMBER_PAGES_CREATED: 256
NUMBER_PAGES_WRITTEN: 278
PAGES_READ_RATE: 0
PAGES_CREATE_RATE: 0
PAGES_WRITTEN_RATE: 0
NUMBER_PAGES_GET: 1649
HIT_RATE: 0
YOUNG_MAKE_PER_THOUSAND_GETS: 0
NOT_YOUNG_MAKE_PER_THOUSAND_GETS: 0
NUMBER_PAGES_READ_AHEAD: 0
NUMBER_READ_AHEAD_EVICTED: 0
READ_AHEAD_RATE: 0
READ_AHEAD_EVICTED_RATE: 0
LRU_IO_TOTAL: 0
LRU_IO_CURRENT: 0
UNCOMPRESS_TOTAL: 0
UNCOMPRESS_CURRENT: 0
1 row in set (0.00 sec)

InnoDB INFORMATION_SCHEMA Buffer Pool Tables的更多相关文章

  1. InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables

    InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables 下表提供了FULLTEXT索引的元数据: mysql> SHOW TABLES FROM INFO ...

  2. innodb buffer pool小解

    INNODB维护了一个缓存数据和索引信息到内存的存储区叫做buffer pool,他会将最近访问的数据缓存到缓冲区.通过配置各个buffer pool的参数,我们可以显著提高MySQL的性能. INN ...

  3. 14.4.3.1 The InnoDB Buffer Pool

    14.4.3.1 The InnoDB Buffer Pool 14.4.3.2 Configuring Multiple Buffer Pool Instances 14.4.3.3 Making ...

  4. [ERROR] InnoDB: Cannot allocate memory for the buffer pool

    :: mysqld_safe Starting mysqld daemon with databases from /data/mysqldb -- :: [Note] /usr/local/mysq ...

  5. 在线调整InnoDB Buffer Pool Size

    InnoDB Buffer Pool主要是用来缓存数据表和索引数据的内存区域,它的默认值为134217728字节(128MB).最大值取决于CPU架构;32位系统上的最大值为4294967295(23 ...

  6. MySQL · 性能优化· InnoDB buffer pool flush策略漫谈

    MySQL · 性能优化· InnoDB buffer pool flush策略漫谈 背景 我们知道InnoDB使用buffer pool来缓存从磁盘读取到内存的数据页.buffer pool通常由数 ...

  7. 14.6.3.1 The InnoDB Buffer Pool

    14.6.3.1 The InnoDB Buffer Pool InnoDB 保持一个存储区域被称为buffer pool 用于cache数据和索引在内存里, 知道InnoDB buffer pool ...

  8. 14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新:

    14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新: InnoDB执行某些任务在后台, 包括flush 脏 ...

  9. MySQL · 引擎特性 · InnoDB Buffer Pool

    前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入 ...

随机推荐

  1. 二分匹配ZOJ3646

    //题意:类比线代里:把矩阵中的U看作[1],是否满足一个满秩矩阵 //利用二分匹配就是 //每一行都有相对应的列: #include<iostream> #include<stri ...

  2. python __builtins__ tuple类 (68)

    68.'tuple', 转换为元组类型 class tuple(object) | tuple() -> empty tuple | tuple(iterable) -> tuple in ...

  3. 腾讯QQ团队开源分布式后台毫秒服务引擎全解析:引擎架构、RPC、灰度……

    腾讯QQ团队将于12月4日开源一个服务开发运营框架,叫做毫秒服务引擎(Mass Service Engine in Cluster,MSEC),它集RPC.名字发现服务.负载均衡.业务监控.灰度发布. ...

  4. vs2010中的ADO控件及绑定控件

    要在项目中添加某一个ActiveX控件,则该ActiveX控件必须要注册.由于VS2010中,并没有自动注册ADO及ADO数据绑定控件(Microsoft ADO Data Control,Micro ...

  5. 2018 ACM-ICPC亚洲区域赛(青岛)

    Problem C---zoj 4060 Flippy Sequence 解题思路:要求进行两次操作,每次操作选择一个区间,问将s串变成t串中所选的两个区间构成的4元组有多少个.做法:找出s串与t串不 ...

  6. CentOS 6.9:MySQL Daemon failed to start.

    [root@Server_1 12:02:58 ~ 25]#service mysqld start MySQL Daemon failed to start.Starting mysqld: [ro ...

  7. Java学习笔记之log4j与commons-logging<转>

    Java学习笔记之log4j与commons-logging<转> (2011-02-16 11:10:46) 转载▼ 标签: 杂谈 分类: 技术学习之其他 Logger来自log4j自己 ...

  8. R语言中的并行处理

    网上有人说foreach包可以并行,我就去弄了,结果发现一个普通的二重循环什么事都不错都很卡!捣鼓了半天才发现是foreach的问题 为了提速,做了如下事宜: 直接利用矩阵列加减,不是一个个遍历加 把 ...

  9. Web API性能优化(一)压缩

    简单的应用场景:分页获取日志JSON信息. 很简单的实现,简单的记录一下 未压缩时候 使用PostMan请求http://localhost:34390/api/gpm/syslog/page?pag ...

  10. 使用css3 制作switch开关

    使用css3来实现switch开关的效果: html代码: <!--switch开关--><div class="switch-btn"> <inpu ...