10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.4 kb
手册页(邮政编码)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

14.16.5 InnoDB信息模式缓冲池表

InnoDBINFORMATION_SCHEMA缓冲池表提供缓冲池状态信息和关于页的元数据InnoDB缓冲池。

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

从INNODB_BUFFER中查询表的信息+-----------------------------------------------+ | Tables_in_INFORMATION_SCHEMA (INNODB_BUFFER %) | +-----------------------------------------------+ | INNODB_BUFFER_PAGE_LRU | | INNODB_BUFFER_PAGE | | INNODB_BUFFER_POOL_STATS  | +-----------------------------------------------+

表概述

警告

查询INNODB_BUFFER_PAGEINNODB_BUFFER_PAGE_LRU表会影响性能。不要在生产系统上查询这些表,除非您知道性能影响并确定它是可以接受的。为了避免影响生产系统上的性能,请在测试实例上再现要研究和查询缓冲池统计信息的问题。

例14.6查询INNODB_BUFFER_PAGE表中的系统数据

该查询通过排除包含系统数据的页面提供了一个大致的页面计数TABLE_NAME价值是或包含斜杠/或时期,表示用户定义的表。

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NULL OR (INSTR(TABLE_NAME, '/') = 0 AND INSTR(TABLE_NAME, '.') = 0); +----------+ | COUNT(*) | +----------+ | 1516 | +----------+

该查询返回包含系统数据的页面的大致数目、缓冲池页面的总数以及包含系统数据的页面的大致百分比。

mysql> SELECT (SELECT COUNT(*) FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NULL OR (INSTR(TABLE_NAME, '/') = 0 AND INSTR(TABLE_NAME, '.') = 0) ) AS system_pages, ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE ) AS total_pages, ( SELECT ROUND((system_pages/total_pages) * 100) ) AS system_page_percentage; +--------------+-------------+------------------------+ | system_pages | total_pages | system_page_percentage | +--------------+-------------+------------------------+ | 295 | 8192 | 4 | +--------------+-------------+------------------------+

缓冲池中的系统数据类型可以通过查询PAGE_TYPE价值。例如,下面的查询返回八个不同的PAGE_TYPE包含系统数据的页之间的值:

从信息模式中选择不同的页面类型。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NULL OR (INSTR(TABLE_NAME, '/') = 0 AND INSTR(TABLE_NAME, '.') = 0); +-------------------+ | PAGE_TYPE | +-------------------+ | SYSTEM | | IBUF_BITMAP | | UNKNOWN | | FILE_SPACE_HEADER | | INODE | | UNDO_LOG | | ALLOCATED | +-------------------+

例14.7查询INNODB_BUFFER_PAGE表中的用户数据

该查询通过计算包含用户数据的页面的数量TABLE_NAME值是非空而且不喜欢' % INNODB_SYS_TABLES % '

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NOT NULL AND TABLE_NAME NOT LIKE '%INNODB_SYS_TABLES%'; +----------+ | COUNT(*) | +----------+ | 7897 | +----------+

该查询返回包含用户数据的页面的大致数目、缓冲池页面的总数以及包含用户数据的页面的大致百分比。

mysql> SELECT (SELECT COUNT(*) FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NOT NULL AND (INSTR(TABLE_NAME, '/') > 0 OR INSTR(TABLE_NAME, '.') > 0) ) AS user_pages, ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE ) AS total_pages, ( SELECT ROUND((user_pages/total_pages) * 100) ) AS user_page_percentage; +------------+-------------+----------------------+ | user_pages | total_pages | user_page_percentage | +------------+-------------+----------------------+ | 7897 | 8192 | 96 | +------------+-------------+----------------------+

这个查询在缓冲池中识别带有页面的用户定义表:

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGEWHERE TABLE_NAME IS NOT NULL AND (INSTR(TABLE_NAME, '/') > 0 OR INSTR(TABLE_NAME, '.') > 0) AND TABLE_NAME NOT LIKE '`mysql`.`innodb_%'; +-------------------------+ | TABLE_NAME | +-------------------------+ | `employees`.`salaries` | | `employees`.`employees` | +-------------------------+

例14.8查询INNODB_BUFFER_PAGE表的索引数据

有关索引页的信息,请查询INDEX_NAME列使用索引的名称。例如,下面的查询返回页数和页的总数据大小列出对象上定义的索引employees.salaries表:

mysql> SELECT INDEX_NAME, COUNT(*) AS Pages, ROUND(SUM(IF(COMPRESSED_SIZE = 0, @@全局。)innodb_page_size, COMPRESSED_SIZE))/1024/1024)作为信息模式的总数据(MB)。INNODB_BUFFER_PAGE WHERE INDEX_NAME='emp_no' AND TABLE_NAME =' employees ' . ' wages ' ';+------------+-------+-----------------+ | INDEX_NAME | |总页面数据(MB ) | +------------+-------+-----------------+ | 列出| 1609 | 25  | +------------+-------+-----------------+

对象上定义的所有索引的页数和页的总数据大小employees.salaries表:

mysql> SELECT INDEX_NAME, COUNT(*) AS Pages, ROUND(SUM(IF(COMPRESSED_SIZE = 0, @@全局。)innodb_page_size, COMPRESSED_SIZE))/1024/1024)作为信息模式的总数据(MB)。INNODB_BUFFER_PAGE WHERE TABLE_NAME = ' ' employees '。“工资”组由INDEX_NAME;+------------+-------+-----------------+ | INDEX_NAME | |总页面数据(MB ) | +------------+-------+-----------------+ | 主要列出| 1608 | | | | 6086 | 95  | +------------+-------+-----------------+

示例14.9查询INNODB_BUFFER_PAGE_LRU表中的LRU_POSITION数据

INNODB_BUFFER_PAGE_LRU控件中的页的信息InnoDB缓冲池,特别是它们的顺序,这决定了当缓冲池满时要从缓冲池中驱逐哪些页。本页的定义与for相同INNODB_BUFFER_PAGE除了这张桌子有一个LRU_POSITION列而不是BLOCK_ID列。

的页面所占用的LRU列表中特定位置的位置数劳工表格

mysql> SELECT COUNT(LRU_POSITION) FROM INFORMATION_SCHEMA。INNODB_BUFFER_PAGE_LRU TABLE_NAME =“员工”。' employees ' AND LRU_POSITION < 3072;+---------------------+ | 计数(LRU_POSITION ) | +---------------------+ | 548年  | +---------------------+

示例14.10查询INNODB_BUFFER_POOL_STATS表

INNODB_BUFFER_POOL_STATS表提供类似于显示引擎innodb状态而且InnoDB缓冲池状态变量。

mysql> SELECT * FROM信息模式。INNODB_BUFFER_POOL_STATS\G *************************** 1. row *************************** POOL_ID: 0 POOL_SIZE: 8192 FREE_BUFFERS: 1 DATABASE_PAGES: 8173 OLD_DATABASE_PAGES: 3014 MODIFIED_DATABASE_PAGES: 0 PENDING_DECOMPRESS: 0 PENDING_READS: 0 PENDING_FLUSH_LRU: 0 PENDING_FLUSH_LIST: 0 PAGES_MADE_YOUNG: 15907 PAGES_NOT_MADE_YOUNG: 3803101 PAGES_MADE_YOUNG_RATE: 0 PAGES_MADE_NOT_YOUNG_RATE: 0 NUMBER_PAGES_READ: 3270 NUMBER_PAGES_CREATED: 13176 NUMBER_PAGES_WRITTEN: 15109 PAGES_READ_RATE: 0 PAGES_CREATE_RATE: 0 PAGES_WRITTEN_RATE: 0 NUMBER_PAGES_GET: 33069332 HIT_RATE: 0 YOUNG_MAKE_PER_THOUSAND_GETS: 0 NOT_YOUNG_MAKE_PER_THOUSAND_GETS: 0 NUMBER_PAGES_READ_AHEAD: 2713 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

相比较而言,显示引擎innodb状态输出和InnoDB基于相同的数据集,缓冲池状态变量输出如下所示。

有关显示引擎innodb状态输出,看到第14.18.3节“InnoDB标准监视器和锁监视器输出”

mysql>显示引擎INNODB状态----------------------缓冲池和内存----------------------总大内存分配137428992字典内存分配579084缓冲池大小8192空闲缓冲区1数据库页8173旧数据库页3014修改数据库页0未决读0未决写:LRU 0,刷新列表0,单页0 page made young 15907, not young 3803101 0.00 youngs/s, 0.00 non-youngs/s Pages read 3270, created 13176, written 15109 0.00 reads/s, 0.00 created /s, 0.00 write /s自上次打印输出以来没有缓冲池页面获取分页向前读0.00/s,未经访问驱逐0.00/s,随机向前读0.00/s LRU len: 8173, unzip_LRU len: 0 I/O sum[0]:cur[0], unzip sum[0]:cur[0]…

有关状态变量的描述,请参见第5.1.9节,“服务器状态变量”

显示Innodb_buffer%;+---------------------------------------+-------------+ | Variable_name |值  | +---------------------------------------+-------------+ | Innodb_buffer_pool_dump_status |没有开始| | Innodb_buffer_pool_load_status |没有开始| | Innodb_buffer_pool_resize_status |没有开始| | Innodb_buffer_pool_pages_data | 8173 | | Innodb_buffer_pool_bytes_data | 133906432 | | Innodb_buffer_pool_pages_dirty | 0 | | Innodb_buffer_pool_bytes_dirty | 0 | | Innodb_buffer_pool_pages_flushed | 15109 | |18 Innodb_buffer_pool_pages_free | 1 | | Innodb_buffer_pool_pages_misc | | | Innodb_buffer_pool_pages_total | 8192 | | Innodb_buffer_pool_read_ahead_rnd | 0 | | Innodb_buffer_pool_read_ahead | 2713 | | Innodb_buffer_pool_read_ahead_evicted | 0 | | Innodb_buffer_pool_read_requests | 33069332 | | Innodb_buffer_pool_reads | 558 | | Innodb_buffer_pool_wait_free | 0 | | Innodb_buffer_pool_write_requests | 11985961  | +---------------------------------------+-------------+