INNODB_BUFFER_PAGE_LRU
表格提供關於 InnoDB
緩衝池中頁面的資訊;特別是,它們在 LRU 列表中是如何排序的,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_DESCRIPTOR
範圍描述符頁面 FILE_SPACE_HEADER
檔案空間標頭 FIL_PAGE_TYPE_UNUSED
未使用 IBUF_BITMAP
插入緩衝位圖 IBUF_FREE_LIST
插入緩衝可用列表 IBUF_INDEX
插入緩衝索引 INDEX
B 樹節點 INODE
索引節點 LOB_DATA
未壓縮的 LOB 資料 LOB_FIRST
未壓縮的 LOB 的第一頁 LOB_INDEX
未壓縮的 LOB 索引 PAGE_IO_COMPRESSED
壓縮頁面 PAGE_IO_COMPRESSED_ENCRYPTED
壓縮且加密的頁面 PAGE_IO_ENCRYPTED
加密的頁面 RSEG_ARRAY
回滾段陣列 RTREE_INDEX
R 樹索引 SDI_BLOB
未壓縮的 SDI BLOB SDI_COMPRESSED_BLOB
已壓縮的 SDI BLOB SDI_INDEX
SDI 索引 SYSTEM
系統頁面 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_SCHEMA
COLUMNS
資料表或SHOW COLUMNS
陳述式,以檢視此資料表欄位的其他資訊,包括資料類型和預設值。查詢此資料表可能需要 MySQL 分配一大塊連續記憶體,超過緩衝池中活動頁面數乘以 64 位元組。這種分配可能會導致記憶體不足錯誤,特別是對於具有數 GB 緩衝池的系統。
查詢此資料表需要 MySQL 在遍歷 LRU 列表時鎖定表示緩衝池的資料結構,這可能會降低並行性,特別是對於具有數 GB 緩衝池的系統。
當資料表、資料表列、分割區或索引被刪除時,關聯的頁面會保留在緩衝池中,直到其他資料需要空間為止。
INNODB_BUFFER_PAGE_LRU
資料表會報告這些頁面的資訊,直到它們從緩衝池中清除。有關InnoDB
如何管理緩衝池資料的詳細資訊,請參閱 第 17.5.1 節,「緩衝池」。