10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

15.15.5 InnoDB Information_Schema缓冲池表

InnoDBInformation_Schema.中的页的缓冲池状态信息和元数据InnoDB缓冲池。

InnoDBInformation_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_BUFFER_PAGE_LRU表会影响性能。除非您了解性能影响,否则请勿在生产系统上查询这些表格并确定它可以接受。为避免在生产系统上影响性能,重现您想要调查和查询测试实例的缓冲池统计信息的问题。

示例15.6 innodb_buffer_page表中查询系统数据

此查询提供了通过排除页面的近似包含系统数据的页面数TABLE_NAME价值是或包括斜线/或期间在表名中,表示用户定义的表。

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

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

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA。Innodb_buffer_page.WHERE 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包含系统数据的页面中的值:

mysql>从Information_schema.innodb_buffer_page中选择distinct page_type,其中table_name为null或(ortor(table_name,'/')= 0和ortr(table_name,'。')= 0);+ ------------------ + |page_type |+ ------------------ + |系统||IBUF_BITMAP ||未知|| FILE_SPACE_HEADER | | INODE | | UNDO_LOG | | ALLOCATED | +-------------------+

例15.7查询INNODB_BUFFER_PAGE表的用户数据

该查询通过计算包含用户数据的页面的数量来提供包含用户数据的页面的大致数量TABLE_NAME价值是非空不喜欢'%InnoDB_Tables%'

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA。Innodb_buffer_page.WHERE TABLE_NAME IS NOT NULL AND TABLE_NAME NOT LIKE '%INNODB_TABLES%'; +----------+ | COUNT(*) | +----------+ | 7897 | +----------+

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

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA。Innodb_buffer_page.WHERE 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 | +------------+-------------+----------------------+

此查询标识使用缓冲池中的页面中的用户定义表:

MySQL>从Information_schema.innodb_buffer_page中选择distinct table_name,其中table_name不是null,(ortor(table_name,'/')> 0或ortr(table_name,'。')> 0)和table_name不喜欢'`mysql`.`innodb_%'+ ----------------------- + |table_name |+ ----------------------- + |`员工``ssalaries`|`员工`+ ------------------------

示例15.8查询InnoDB_BUFFER_PAGE表中的索引数据

有关索引页的信息,请查询index_name.列使用索引名称。例如,以下查询返回页面的页数和页面的总数据大小列出对象上定义的索引员工。萨拉斯表:

mysql>选择index_name,count(*)作为页面,round(如果(compressing_size = 0,@@ globant_size)/ 1024/1024)为from Information_schema.innodb_buffer_page的'总数据(MB)',其中index_name='emp_no'和table_name ='`员工料号,''ssalaries'';+ ------------ + ------- + ----------------- + |index_name |页面|总数据(MB)|+ ------------ + ------- + ----------------- + |emp_no |1609 |25 |+ ------------ + ------- + ----------------- +

对象上定义的所有索引的页数和页的总数据大小员工。萨拉斯表:

MySQL>选择index_name,count(*)作为页面,rows(如果(compressing_size = 0,@@ globant_size)/ 1024/1024)为from Information_schema.innodb_buffer_page的'total data(mb)',其中table_name='“员工”:“索引”(SSALARES)(由INDEX_NAME组);+ ------------ + ------- + ----------------- + |index_name |页面|总数据(MB)|+ ------------ + ------- + ----------------- + |emp_no |1608 |25 | | PRIMARY | 6086 | 95 | +------------+-------+-----------------+

示例15.9查询Innodb_buffer_page_lru表中的lru_position数据

INNODB_BUFFER_PAGE_LRU表保存有关页面的信息InnoDB缓冲池,特别是如何订购它们,该池确定在变得满满的情况下确定要从缓冲池驱动的页面。此页面的定义与其相同Innodb_buffer_page.,除此表外有一个lru_position.列,而不是block_id.柱子。

此查询计算由页面占用的LRU列表中特定位置的位置数劳工表格

mysql>从Information_schema.innodb_buffer_page_lru中选择count(lru_position),其中table_name ='`employees`.employees`''和lru_position <3072;+ -------------------- + |计数(lru_position)|+ -------------------- + |548 |+ --------------------

示例15.10查询InnodB_Buffer_Pool_Stats表

INNODB_BUFFER_POOL_STATS表提供了类似的信息显示引擎的innodb状态InnoDB缓冲池状态变量。

mysql> SELECT * FROM information_schema。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状态输出,看到第15.17.3节,“InnoDB标准监视器和锁监视器输出”

MySQL> Show Engine InnoDB状态\ G ... ---------------------------------------------总大内存分配137428992字典内存分配579084缓冲池大小8192自由缓冲区1数据库页面8173旧数据库页面3014修改db页面0待读取0待读写:lru 0,刷新列表0,单Page 0页面15907,而不是Young 3803101 0.00幼年/ S,0.00非年轻人/读3270,创建的13176,写入15109 0.00 READS / S,0.00创建/ s,0.00写入/ s没有缓冲池页面上次打印页面上方读取0.00 / s,无需访问0.00 / s,随机读取,0.00 / s Lru Len:8173,Unzip_lru Len:0 I / O Sum [0]:Cur [0],解压缩和[0]:cur [0] ...

状态变量说明请参见第5.1.10节,“服务器状态变量”

mysql> SHOW STATUS LIKE '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 | | Innodb_buffer_pool_pages_free | 1 | | Innodb_buffer_pool_pages_misc 18 | | | 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  | +---------------------------------------+-------------+