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. python slice 切片

    list,tuple,string,bytes对象可以进行切片处理,生成一个新的这些类的对象. 格式:li[start: stop: step] list切片: >>> li = [ ...

  2. bzoj 4589: Hard Nim【线性筛+FWT+快速幂】

    T了两次之后我突然意识到转成fwt形式之后,直接快速幂每次乘一下最后再逆回来即可,并不需要没此次都正反转化一次-- 就是根据nim的性质,先手必输是所有堆个数异或和为0,也就变成了一个裸的板子 #in ...

  3. IT兄弟连 Java Web教程 Web开发的相关知识

    Web基本概念 Web,是环球信息网的缩写,也称作“WWW.W3”,英文全称为World Wide Web,中文名成为万维网,常简称为Web.Web分为Web客户端和Web服务器程序.Web可以让We ...

  4. django接受表单

    from django.shortcuts import render from django.shortcuts import HttpResponse import os # Create you ...

  5. CodeForces - 816C Karen and Game(简单模拟)

    Problem Description On the way to school, Karen became fixated on the puzzle game on her phone! The ...

  6. 在脚本中输入密码执行sudo,可关机等。

    如下,makexxx.sh make update-api make echo "password" | sudo -S shutdown -h now

  7. 1. UI Tests简介

    (1) User Interface Testing UI Testing库主要提供了与App中的UI元素进行查找和交互的能力,这使得我们可以通过验证UI元素的状态来测试App是否正常运行.     ...

  8. RecycleView的万能适配器

    转载自http://www.cnblogs.com/liushilin/p/5720926.html 由于RecyclerView的Adapter必须继承自RecyclerView.Adapter,并 ...

  9. C/C++ static

    C/C++中static关键字作用总结 1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全 ...

  10. 我的关于phoneGap的安装及测试。

    一.PhoneGap简介 PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够利用 iPhone,Android,Palm,S ...