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”.