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 节 “使用压缩信息模式表”。有关
InnoDB
表压缩的常规信息,请参阅 第 17.9 节 “InnoDB 表和页面压缩”。