INNODB_TABLESTATS
表格提供關於 InnoDB
表格的低階狀態資訊檢視。此資料由 MySQL 最佳化工具使用,以計算查詢 InnoDB
表格時要使用哪個索引。此資訊來自記憶體中的資料結構,而非儲存在磁碟上的資料。沒有對應的內部 InnoDB
系統表格。
自上次伺服器重新啟動後已開啟,且未從表格快取中過期的 InnoDB
表格會在此檢視中呈現。具有持久統計資料的表格會始終在此檢視中呈現。
表格統計資料僅針對修改索引欄的 DELETE
或 UPDATE
操作進行更新。僅修改非索引欄的操作不會更新統計資料。
ANALYZE TABLE
會清除表格統計資料,並將 STATS_INITIALIZED
欄設定為 Uninitialized
。下次存取表格時,會再次收集統計資料。
如需相關使用資訊和範例,請參閱 第 17.15.3 節,〈InnoDB INFORMATION_SCHEMA 結構描述物件表格〉。
INNODB_TABLESTATS
表格具有以下欄位
TABLE_ID
代表可取得統計資料的表格的識別碼;與
INNODB_TABLES.TABLE_ID
的值相同。NAME
表格名稱;與
INNODB_TABLES.NAME
的值相同。STATS_INITIALIZED
如果已收集統計資料,則值為
Initialized
;如果沒有,則為Uninitialized
。NUM_ROWS
表格中目前估計的列數。在每次 DML 操作後更新。如果有未提交的事務正在插入或刪除表格,則該值可能不精確。
CLUST_INDEX_SIZE
磁碟上儲存叢集索引的頁面數量,其中以主鍵順序保存
InnoDB
表格資料。如果尚未收集表格的統計資料,則此值可能為 null。OTHER_INDEX_SIZE
磁碟上儲存表格所有次要索引的頁面數量。如果尚未收集表格的統計資料,則此值可能為 null。
MODIFIED_COUNTER
由 DML 操作(例如
INSERT
、UPDATE
、DELETE
以及來自外部索引鍵的級聯操作)修改的列數。每次重新計算表格統計資料時,都會重設此欄。AUTOINC
任何自動遞增操作要發出的下一個數字。
AUTOINC
值變更的速度取決於請求自動遞增數字的次數以及每次請求授予的數字數量。REF_COUNT
當此計數器達到零時,可以從表格快取中逐出表格中繼資料。
範例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: test/t1
STATS_INITIALIZED: Initialized
NUM_ROWS: 1
CLUST_INDEX_SIZE: 1
OTHER_INDEX_SIZE: 0
MODIFIED_COUNTER: 1
AUTOINC: 0
REF_COUNT: 1
注意事項
此表格主要適用於專家級效能監控,或為 MySQL 開發效能相關的擴充功能時。
您必須具有
PROCESS
權限才能查詢此表格。使用
INFORMATION_SCHEMA
COLUMNS
表格或SHOW COLUMNS
陳述式,以檢視有關此表格欄的額外資訊,包括資料類型和預設值。