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. (六)SpringBoot整合Swagger2框架

    一:什么是Swagger Swagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务. 二:添加Swagger2依赖 <dependency> ...

  2. scrapy将爬取到的数据存入elasticsearch

    pip安装 elasticsearch-dsl的包, 是elasticsearch提供给python 的接口 if __name__ == "__main__": 这个用来调试,还 ...

  3. Linux 命令行光标操作

    转自: https://blog.csdn.net/leo_618/article/details/53003111 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同 ...

  4. 洛谷 P2147 [SDOI2008]洞穴勘测

    以下这个做法应该是叫线段树分治... 根据修改操作预处理出每条边存在的时间区间[l,r](以操作序号为时间),然后把所有形式化后的修改挂到线段树节点上. 处理完修改后,dfs一遍线段树,进入某个节点时 ...

  5. Zernike矩之边缘检测(附源码)

    这一篇博文将讨论Zernike矩在边缘检测中的应用,关于Zernike矩的基本概念,可以参看<Zernike矩之图像重建(附源码> 源码下载 参考: [4] Ghosal S, Mehro ...

  6. MySQL、SqlServer、Oracle三大主流数据库分页查询 (MySQL分页不能用top,因为不支持)

    一. MySQL 数据库 分页查询MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它 ...

  7. (023) 关于51单片机的A5指令

    可看见一篇讲51单片机加密的文章这么讲: [加密方法:在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序.] ...

  8. 看Facebook是如何优化React Native性能

    原文出处: facebook   译文出处:@Siva海浪高 该文章翻译自Facebook官方博客,传送门 React Native 允许我们运用 React 和 Relay 提供的声明式的编程模型, ...

  9. Unity项目学习笔记

    1.TCP和IP IP:主要作用是在复杂的网络环境中将数据包发送给的最终的目标地址. 端口号:系统会分给系统端口号  一般知名的端口号在0-1023之间,而我们经常使用的自定义/动态分配的端口号则一般 ...

  10. springboot之读取配置文件

    1.propertie配置读取数据 /** * 通过value取配置文件中的数据 */ @Component @PropertySource(value = {"config/db-conf ...