24.32.6 INFORMATION_SCHEMA INNODB_CMP_PER_INDEX 和 INNODB_CMP_PER_INDEX_RESETtable
INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESETtable 提供与compressed InnoDB
table 和索引相关的操作的状态信息,并为数据库,table 和索引的每种组合提供单独的统计信息,以帮助您评估特定 table 的压缩性能和有用性。
对于压缩的InnoDB
table,table 数据和所有secondary indexes都被压缩。在这种情况下,table 数据仅被视为另一索引,恰好包含所有列:clustered index。
INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESETtable 具有以下列:
DATABASE_NAME
包含适用 table 的架构(数据库)。
TABLE_NAME
监视压缩统计信息的 table。
INDEX_NAME
监视压缩统计信息的索引。
COMPRESS_OPS
尝试的压缩操作数。每当创建空白页或未压缩的修改日志空间用完时,Pages就会被压缩。
COMPRESS_OPS_OK
成功压缩操作的次数。从COMPRESS_OPS
值中减去以得到compression failures的数量。用COMPRESS_OPS
值除以得到压缩失败的百分比。
COMPRESS_TIME
该索引中用于压缩数据的总时间(以秒为单位)。
UNCOMPRESS_OPS
执行的解压缩操作数。每当压缩fails或第一次在buffer pool中访问压缩页面且不存在未压缩页面时,已压缩InnoDB
的页面都不会被压缩。
UNCOMPRESS_TIME
用于解压缩此索引中数据的总时间(以秒为单位)。
Example
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
Notes
-
使用这些 table 来衡量
InnoDB
tablecompression对于特定 table,索引或两者的有效性。 -
您必须具有PROCESS特权才能查询这些 table。
-
使用
INFORMATION_SCHEMA
COLUMNStable 或SHOW COLUMNS语句查看有关这些 table 的列的其他信息,包括数据类型和默认值。 -
由于为每个索引收集单独的度量会带来大量的性能开销,因此默认情况下不会收集INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET统计信息。在要监视的压缩 table 上执行操作之前,必须启用innodb_cmp_per_index_enabled系统变量。
-
有关用法信息,请参阅第 14.9.1.4 节“在运行时监视 InnoDBtable 压缩”和第 14.16.1.3 节,“使用压缩信息模式 table”。有关
InnoDB
table 压缩的一般信息,请参见第 14.9 节“ InnoDBtable 和页面压缩”。