INNODB_CMP_PER_INDEX
和 INNODB_CMP_PER_INDEX_RESET
資料表提供與 壓縮 InnoDB
資料表和索引相關操作的狀態資訊,並針對每個資料庫、資料表和索引的組合提供個別統計資料,以協助您評估特定資料表的壓縮效能和實用性。
對於壓縮的 InnoDB
資料表,資料表資料和所有次要索引都會被壓縮。在此上下文中,資料表資料被視為另一個索引,該索引碰巧包含所有欄:叢集索引。
INNODB_CMP_PER_INDEX
和 INNODB_CMP_PER_INDEX_RESET
資料表具有以下欄位
DATABASE_NAME
包含適用資料表的結構描述(資料庫)。
TABLE_NAME
要監控壓縮統計資料的資料表。
INDEX_NAME
要監控壓縮統計資料的索引。
COMPRESS_OPS
嘗試的壓縮操作次數。頁面會在建立空頁面或未壓縮的修改日誌空間用完時壓縮。
COMPRESS_OPS_OK
成功的壓縮操作次數。從
COMPRESS_OPS
值中減去即可得到壓縮失敗的次數。除以COMPRESS_OPS
值可得到壓縮失敗的百分比。COMPRESS_TIME
用於壓縮此索引中資料的總時間(以秒為單位)。
UNCOMPRESS_OPS
執行的解壓縮操作次數。當壓縮失敗時,或當壓縮頁面首次在緩衝池中存取且未壓縮頁面不存在時,會解壓縮壓縮的
InnoDB
頁面。UNCOMPRESS_TIME
用於解壓縮此索引中資料的總時間(以秒為單位)。
範例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX\G
*************************** 1. row ***************************
database_name: employees
table_name: salaries
index_name: PRIMARY
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 23451
uncompress_time: 4
*************************** 2. row ***************************
database_name: employees
table_name: salaries
index_name: emp_no
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 1597
uncompress_time: 0
注意事項
使用這些資料表來衡量特定資料表、索引或兩者的
InnoDB
資料表壓縮的效果。您必須擁有
PROCESS
權限才能查詢這些資料表。使用
INFORMATION_SCHEMA
COLUMNS
資料表或SHOW COLUMNS
陳述式,以檢視關於這些資料表欄位的其他資訊,包括資料類型和預設值。由於為每個索引收集個別測量值會產生相當大的效能負擔,因此預設不會收集
INNODB_CMP_PER_INDEX
和INNODB_CMP_PER_INDEX_RESET
的統計資料。您必須先啟用innodb_cmp_per_index_enabled
系統變數,才能對要監控的壓縮資料表執行操作。如需使用資訊,請參閱第 17.9.1.4 節「在執行階段監控 InnoDB 資料表壓縮」和第 17.15.1.3 節「使用壓縮 Information Schema 資料表」。如需關於
InnoDB
資料表壓縮的一般資訊,請參閱第 17.9 節「InnoDB 資料表和頁面壓縮」。