INNODB_BUFFER_PAGE_LRU table holds
information about the pages in the
buffer pool, in particular
how they are ordered in the LRU list that determines which pages
to evict from the buffer pool
when it becomes full.
For related usage information and examples, see Section 14.15.5, “InnoDB INFORMATION_SCHEMA Buffer Pool Tables”.
INNODB_BUFFER_PAGE_LRU table can
introduce significant performance overhead. Do not query this
table on a production system unless you are aware of the
performance impact that your query may have, and have determined
it to be acceptable. To avoid impacting performance, reproduce
the issue you want to investigate on a test instance and query
INNODB_BUFFER_PAGE_LRU table on the test
Table 21.2 INNODB_BUFFER_PAGE_LRU Columns
|Buffer Pool ID. An identifier to distinguish between multiple buffer pool instances.|
|The position of the page in the LRU list.|
|Tablespace ID. Uses the same value as in
|Page type. Permitted values are |
|Number of threads using this block within the buffer pool. When zero, the block is eligible to be evicted.|
|Whether hash index has been built on this page.|
|Log Sequence Number of the youngest modification.|
|Log Sequence Number of the oldest modification.|
|An abstract number used to judge the first access time of the page.|
|Name of the table the page belongs to. This column is only applicable to
pages of type |
|Name of the index the page belongs to. It can be the name of a clustered
index or a secondary index. This column is only applicable
to pages of type |
|Number of records within the page.|
|Sum of the sizes of the records. This column is only applicable to pages
of type |
|Compressed page size. Null for pages that are not compressed.|
|Page state. A page with valid data has one of the following states:
|Specifies whether any I/O is pending for this page:
|Specifies whether or not the block is in the sublist of old blocks in the LRU list.|
|The value of the |
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G *************************** 1. row *************************** POOL_ID: 0 LRU_POSITION: 0 SPACE: 97 PAGE_NUMBER: 1984 PAGE_TYPE: INDEX FLUSH_TYPE: 1 FIX_COUNT: 0 IS_HASHED: YES NEWEST_MODIFICATION: 719490396 OLDEST_MODIFICATION: 0 ACCESS_TIME: 3378383796 TABLE_NAME: `employees`.`salaries` INDEX_NAME: PRIMARY NUMBER_RECORDS: 468 DATA_SIZE: 14976 COMPRESSED_SIZE: 0 COMPRESSED: NO IO_FIX: IO_NONE IS_OLD: YES FREE_PAGE_CLOCK: 0
This table is primarily useful for expert-level performance monitoring, or when developing performance-related extensions for MySQL.
You must have the
PROCESSprivilege to query this table.
Querying this table can require MySQL to allocate a large block of contiguous memory, more than 64 bytes time the number of active pages in the buffer pool. This allocation could potentially cause an out-of-memory error, especially for systems with multi-gigabyte buffer pools.
Querying this table requires MySQL to lock the data structure representing the buffer pool while traversing the LRU list, which can reduce concurrency, especially for systems with multi-gigabyte buffer pools.
When tables, table rows, partitions, or indexes are deleted, associated pages remain in the buffer pool until space is required for other data. The
INNODB_BUFFER_PAGE_LRUtable reports information about these pages until they are evicted from the buffer pool. For more information about how the
InnoDBmanages buffer pool data, see Section 18.104.22.168, “The InnoDB Buffer Pool”.