INNODB_BUFFER_PAGE_LRU 資料表提供關於 InnoDB 緩衝池中頁面的資訊;特別是它們在 LRU 清單中的排序方式,該清單決定當緩衝池滿時,要從緩衝池逐出哪些頁面。
INNODB_BUFFER_PAGE_LRU 資料表與 INNODB_BUFFER_PAGE 資料表具有相同的欄位,但有一些例外。它具有 LRU_POSITION 和 COMPRESSED 欄位,而不是 BLOCK_ID 和 PAGE_STATE 欄位,而且不包括 IS_STALE 欄位。
關於相關的使用資訊和範例,請參閱第 17.15.5 節, 「InnoDB INFORMATION_SCHEMA 緩衝池資料表」。
查詢 INNODB_BUFFER_PAGE_LRU 資料表可能會影響效能。除非您知道效能影響並已確定其可接受,否則請勿在生產系統上查詢此資料表。為避免影響生產系統的效能,請重現您要調查的問題,並在測試執行個體上查詢緩衝池統計資料。
INNODB_BUFFER_PAGE_LRU 資料表具有下列欄位
POOL_ID緩衝池 ID。這是一個識別碼,用於區分多個緩衝池執行個體。
LRU_POSITION頁面在 LRU 清單中的位置。
SPACE表格空間 ID;與
INNODB_TABLES.SPACE的值相同。PAGE_NUMBER頁碼。
PAGE_TYPE頁面類型。下表顯示允許的值。
表 28.6 INNODB_BUFFER_PAGE_LRU.PAGE_TYPE 值
頁面類型 描述 ALLOCATED剛分配的頁面 BLOB未壓縮的 BLOB 頁面 COMPRESSED_BLOB2後續的壓縮 BLOB 頁面 COMPRESSED_BLOB第一個壓縮的 BLOB 頁面 ENCRYPTED_RTREE加密的 R 樹 EXTENT_DESCRIPTORExtent 描述元頁面 FILE_SPACE_HEADER檔案空間標頭 FIL_PAGE_TYPE_UNUSED未使用 IBUF_BITMAP插入緩衝區點陣圖 IBUF_FREE_LIST插入緩衝區可用清單 IBUF_INDEX插入緩衝區索引 INDEXB 樹節點 INODE索引節點 LOB_DATA未壓縮的 LOB 資料 LOB_FIRST未壓縮 LOB 的第一頁 LOB_INDEX未壓縮的 LOB 索引 PAGE_IO_COMPRESSED壓縮頁面 PAGE_IO_COMPRESSED_ENCRYPTED壓縮且加密的頁面 PAGE_IO_ENCRYPTED加密的頁面 RSEG_ARRAY回滾區段陣列 RTREE_INDEXR 樹索引 SDI_BLOB未壓縮的 SDI BLOB SDI_COMPRESSED_BLOB壓縮的 SDI BLOB SDI_INDEXSDI 索引 系統系統頁面 TRX_SYSTEM交易系統資料 UNDO_LOG復原日誌頁面 UNKNOWN未知 ZLOB_DATA壓縮的 LOB 資料 ZLOB_FIRST壓縮的 LOB 的第一頁 ZLOB_FRAG壓縮的 LOB 片段 ZLOB_FRAG_ENTRY壓縮的 LOB 片段索引 ZLOB_INDEX壓縮的 LOB 索引 FLUSH_TYPE刷新類型。
FIX_COUNT緩衝池中正在使用此區塊的執行緒數量。當為零時,表示該區塊符合被逐出的條件。
IS_HASHED此頁面上是否已建立雜湊索引。
NEWEST_MODIFICATION最近一次修改的日誌序號 (Log Sequence Number)。
OLDEST_MODIFICATION最舊一次修改的日誌序號 (Log Sequence Number)。
ACCESS_TIME用於判斷頁面首次存取時間的抽象數字。
TABLE_NAME此頁面所屬的表格名稱。此欄位僅適用於
PAGE_TYPE值為INDEX的頁面。如果伺服器尚未存取表格,則此欄位為NULL。INDEX_NAME此頁面所屬的索引名稱。這可以是叢集索引或次要索引的名稱。此欄位僅適用於
PAGE_TYPE值為INDEX的頁面。NUMBER_RECORDS頁面中的記錄數量。
DATA_SIZE記錄大小的總和。此欄位僅適用於
PAGE_TYPE值為INDEX的頁面。COMPRESSED_SIZE壓縮後的頁面大小。對於未壓縮的頁面,此值為
NULL。COMPRESSED頁面是否經過壓縮。
IO_FIX此頁面是否有任何 I/O 操作正在等待中:
IO_NONE= 無等待中的 I/O,IO_READ= 讀取等待中,IO_WRITE= 寫入等待中。IS_OLD此區塊是否在 LRU 列表中的舊區塊子列表中。
FREE_PAGE_CLOCK當區塊最後一次被放置在 LRU 列表頭部時,
freed_page_clock計數器的值。freed_page_clock計數器追蹤從 LRU 列表尾部移除的區塊數量。
範例
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
注意事項
此表格主要用於專家級效能監控,或為 MySQL 開發效能相關的擴充功能時。
您必須擁有
PROCESS權限才能查詢此表格。使用
INFORMATION_SCHEMACOLUMNS表格或SHOW COLUMNS陳述式,檢視此表格的額外欄位資訊,包括資料類型和預設值。查詢此表格可能需要 MySQL 配置一個大型連續記憶體區塊,大於緩衝池中活動頁面數量乘以 64 個位元組。這種配置可能會導致記憶體不足錯誤,尤其是對於具有數 GB 緩衝池的系統。
查詢此表格需要 MySQL 在遍歷 LRU 列表時鎖定代表緩衝池的資料結構,這可能會降低並行性,尤其是對於具有數 GB 緩衝池的系統。
當刪除表格、表格列、分割區或索引時,相關的頁面會保留在緩衝池中,直到需要空間給其他資料為止。
INNODB_BUFFER_PAGE_LRU表格會報告關於這些頁面的資訊,直到它們從緩衝池中逐出。如需更多關於InnoDB如何管理緩衝池資料的資訊,請參閱 第 17.5.1 節,「緩衝池」。