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 表和页面压缩”。