InnoDB INFORMATION_SCHEMA Buffer Pool Tables
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_page_clock计数器的值。 freed_page_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_page_clock计数器的值。 freed_page_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的更多相关文章
- InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables
InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables 下表提供了FULLTEXT索引的元数据: mysql> SHOW TABLES FROM INFO ...
- innodb buffer pool小解
INNODB维护了一个缓存数据和索引信息到内存的存储区叫做buffer pool,他会将最近访问的数据缓存到缓冲区.通过配置各个buffer pool的参数,我们可以显著提高MySQL的性能. INN ...
- 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 ...
- [ERROR] InnoDB: Cannot allocate memory for the buffer pool
:: mysqld_safe Starting mysqld daemon with databases from /data/mysqldb -- :: [Note] /usr/local/mysq ...
- 在线调整InnoDB Buffer Pool Size
InnoDB Buffer Pool主要是用来缓存数据表和索引数据的内存区域,它的默认值为134217728字节(128MB).最大值取决于CPU架构;32位系统上的最大值为4294967295(23 ...
- MySQL · 性能优化· InnoDB buffer pool flush策略漫谈
MySQL · 性能优化· InnoDB buffer pool flush策略漫谈 背景 我们知道InnoDB使用buffer pool来缓存从磁盘读取到内存的数据页.buffer pool通常由数 ...
- 14.6.3.1 The InnoDB Buffer Pool
14.6.3.1 The InnoDB Buffer Pool InnoDB 保持一个存储区域被称为buffer pool 用于cache数据和索引在内存里, 知道InnoDB buffer pool ...
- 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 脏 ...
- MySQL · 引擎特性 · InnoDB Buffer Pool
前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入 ...
随机推荐
- Cg(c for graphic)语言的数据类(转)
抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 本章将着重介绍Cg语言中预定义的内置(bu ...
- 51单片机 HC05蓝牙模块
一.注意事项 1.烧写程序时,要把蓝牙tx,rx信号线拔掉,对烧写程序有影响. 2.执行HC05集命令时,均以\r\n结尾.串口中断若选择“发送新行”时,不用添加\r\n.原理相同. 二.准备软硬件 ...
- bzoj 1003: [ZJOI2006]物流运输【spfa+dp】
预处理出ans[i][j]为i到j时间的最短路,设f[i]为到i时间的最小代价,转移显然就是 f[i]=min(f[j-1]+ans[j][i]*(i-j+1)+k); #include<ios ...
- HCNA网工笔记Day2 - IP编址
IP编址 主机地址子网掩码:区分主机位和网络位网络地址:主机位全部为0,比如 127.0.0.0/8广播地址:主机位全部为1,比如 127.255.255.255/8 一般网络地址和广播地址不能pin ...
- jsp 接收汉字参数乱码
这两天跟汉字问题较上劲了,真是考验基本功 1. ${param.userName} 乱码 解决方法: <%String name = (String)request.getParameter( ...
- scikit-learning教程(二)统计学习科学数据处理的教程二
模型选择:选择估计量及其参数 得分和交叉验证的分数 如我们所看到的,每个估计者都会公开一种score可以判断新数据的拟合质量(或预测)的方法.越大越好. >>> >>&g ...
- [WOJ1138]最大子序和
题目链接: WOJ1138 题目分析: 是很经典的一道题,乱搞的方法应该有不少,这里介绍O(n)的单调队列做法 首先维护一个前缀和,然后枚举每一个位置,维护一个前缀和单增的单调队列,但队列仅储存下标, ...
- HashMap的简单实现
基本概念 Map 别名映射表,也叫关联数组,基本思想是它维护的键-值(对)关联,因此可以用键查找值,也有放入键值的操作,下面根据定义自己来实现一个Map,首先应该想到的是数组,因为大多数Java集合类 ...
- AJPFX简述abstract class和interface的区别
含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是 ...
- AJPFX总结java开发常用类(包装,数字处理集合等)(一)
一:首谈java中的包装类 Java为基本类型提供包装类,这使得任何接受对象的操作也可以用来操作基本类型,直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类.jav ...