The INNODB_BUFFER_PAGE_LRU table provides information about the pages in the InnoDB 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.
The INNODB_BUFFER_PAGE_LRU table has the same columns as the INNODB_BUFFER_PAGE table with a few exceptions. It has LRU_POSITION and COMPRESSED columns instead of BLOCK_ID and PAGE_STATE columns, and it does not include and IS_STALE column.
For related usage information and examples, see Section 17.15.5, “InnoDB INFORMATION_SCHEMA Buffer Pool Tables”.
Querying the INNODB_BUFFER_PAGE_LRU table can affect performance. Do not query this table on a production system unless you are aware of the performance impact and have determined it to be acceptable. To avoid impacting performance on a production system, reproduce the issue you want to investigate and query buffer pool statistics on a test instance.
The INNODB_BUFFER_PAGE_LRU table has these columns:
-
POOL_IDThe buffer pool ID. This is an identifier to distinguish between multiple buffer pool instances.
-
LRU_POSITIONThe position of the page in the LRU list.
-
SPACEThe tablespace ID; the same value as
INNODB_TABLES.SPACE. -
PAGE_NUMBERThe page number.
-
PAGE_TYPEThe page type. The following table shows the permitted values.
Table 28.6 INNODB_BUFFER_PAGE_LRU.PAGE_TYPE Values
Page Type Description ALLOCATEDFreshly allocated page BLOBUncompressed BLOB page COMPRESSED_BLOB2Subsequent comp BLOB page COMPRESSED_BLOBFirst compressed BLOB page ENCRYPTED_RTREEEncrypted R-tree EXTENT_DESCRIPTORExtent descriptor page FILE_SPACE_HEADERFile space header FIL_PAGE_TYPE_UNUSEDUnused IBUF_BITMAPInsert buffer bitmap IBUF_FREE_LISTInsert buffer free list IBUF_INDEXInsert buffer index INDEXB-tree node INODEIndex node LOB_DATAUncompressed LOB data LOB_FIRSTFirst page of uncompressed LOB LOB_INDEXUncompressed LOB index PAGE_IO_COMPRESSEDCompressed page PAGE_IO_COMPRESSED_ENCRYPTEDCompressed and encrypted page PAGE_IO_ENCRYPTEDEncrypted page RSEG_ARRAYRollback segment array RTREE_INDEXR-tree index SDI_BLOBUncompressed SDI BLOB SDI_COMPRESSED_BLOBCompressed SDI BLOB SDI_INDEXSDI index SYSTEMSystem page TRX_SYSTEMTransaction system data UNDO_LOGUndo log page UNKNOWNUnknown ZLOB_DATACompressed LOB data ZLOB_FIRSTFirst page of compressed LOB ZLOB_FRAGCompressed LOB fragment ZLOB_FRAG_ENTRYCompressed LOB fragment index ZLOB_INDEXCompressed LOB index -
FLUSH_TYPEThe flush type.
-
FIX_COUNTThe number of threads using this block within the buffer pool. When zero, the block is eligible to be evicted.
-
IS_HASHEDWhether a hash index has been built on this page.
-
NEWEST_MODIFICATIONThe Log Sequence Number of the youngest modification.
-
OLDEST_MODIFICATIONThe Log Sequence Number of the oldest modification.
-
ACCESS_TIMEAn abstract number used to judge the first access time of the page.
-
TABLE_NAMEThe name of the table the page belongs to. This column is applicable only to pages with a
PAGE_TYPEvalue ofINDEX. The column isNULLif the server has not yet accessed the table. -
INDEX_NAMEThe name of the index the page belongs to. This can be the name of a clustered index or a secondary index. This column is applicable only to pages with a
PAGE_TYPEvalue ofINDEX. -
NUMBER_RECORDSThe number of records within the page.
-
DATA_SIZEThe sum of the sizes of the records. This column is applicable only to pages with a
PAGE_TYPEvalue ofINDEX. -
COMPRESSED_SIZEThe compressed page size.
NULLfor pages that are not compressed. -
COMPRESSEDWhether the page is compressed.
-
IO_FIXWhether any I/O is pending for this page:
IO_NONE= no pending I/O,IO_READ= read pending,IO_WRITE= write pending. -
IS_OLDWhether the block is in the sublist of old blocks in the LRU list.
-
FREE_PAGE_CLOCKThe value of the
freed_page_clockcounter when the block was the last placed at the head of the LRU list. Thefreed_page_clockcounter tracks the number of blocks removed from the end of the LRU list.
Example
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
Notes
-
This table is useful primarily for expert-level performance monitoring, or when developing performance-related extensions for MySQL.
-
You must have the
PROCESSprivilege to query this table. -
Use the
INFORMATION_SCHEMACOLUMNStable or theSHOW COLUMNSstatement to view additional information about the columns of this table, including data types and default values. -
Querying this table can require MySQL to allocate a large block of contiguous memory, more than 64 bytes times 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 theInnoDBmanages buffer pool data, see Section 17.5.1, “Buffer Pool”.