Skip to content

INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET

xiaoboluo768 edited this page Jun 7, 2020 · 2 revisions
  • 这两个表中记录着InnoDB压缩表数据和索引相关的操作状态信息,对数据库、表、索引的每个组合使用不同的统计信息,以便为评估特定表的压缩性能和实用性提供参考数据
  • 对于InnoDB压缩表,会对表中的数据和所有二级索引都进行压缩。此时表中的数据被视为另一个索引(包含所有数据列的聚集索引)
  • 注意:由于为每个索引收集单独的度量值会导致性能大幅度降低,因此默认情况下不收集INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET表统计信息。如果确有需要,启用系统配置参数innodb_cmp_per_index_enabled即可(该配置参数为动态变量,默认为OFF)。
  • 查询该表的账户需要有PROCESS权限,该表为Memory引擎临时表
  • 表定义语句
CREATE TEMPORARY TABLE `INNODB_CMP_PER_INDEX` (
  `database_name` varchar(192) NOT NULL DEFAULT '',
  `table_name` varchar(192) NOT NULL DEFAULT '',
  `index_name` varchar(192) NOT NULL DEFAULT '',
  `compress_ops` int(11) NOT NULL DEFAULT '0',
  `compress_ops_ok` int(11) NOT NULL DEFAULT '0',
  `compress_time` int(11) NOT NULL DEFAULT '0',
  `uncompress_ops` int(11) NOT NULL DEFAULT '0',
  `uncompress_time` int(11) NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8
  • 表字段含义
  • DATABASE_NAME:包含压缩表的数据库名称
  • TABLE_NAME:被监视压缩状态的表名称
  • INDEX_NAME:被监视压缩状态的索引名称
  • COMPRESS_OPS:尝试压缩操作的次数。当创建一个空白页或者非压缩页的修改日志的空间用完时,页都会被压缩
  • COMPRESS_OPS_OK:成功压缩操作的次数
  • COMPRESS_TIME:表示用于压缩INDEX_NAME列表示的索引中的数据时的CPU开销时间总量(以秒为单位)
  • UNCOMPRESS_OPS:执行解压缩操作的次数。InnoDB页在压缩失败时,或者第一次访问的压缩页在缓冲池不存在时,则将进行解压缩操作
  • UNCOMPRESS_TIME:表示用于解压缩INDEX_NAME列表示的索引中的数据时的CPU开销时间总量(以秒为单位)
  • 表记录内容示例
# 需要先启用innodb_cmp_per_index_enabled系统参数为ON,然后在innodb表中使用建表选项key_block_size指定一个小于默认的page size的块大小时才会有数据
## INNODB_CMP_PER_INDEX表
root@localhost : test 12:38:08> select * from information_schema.INNODB_CMP_PER_INDEX;
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
| database_name | table_name | index_name | compress_ops | compress_ops_ok | compress_time | uncompress_ops | uncompress_time |
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
| test          | test      | i_id      |            4 |              4 |            0 |              0 |              0 |
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
1 row in set (0.00 sec)

## INNODB_CMP_PER_INDEX_RESET表
root@localhost : test 12:38:11> select * from information_schema.INNODB_CMP_PER_INDEX_RESET;
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
| database_name | table_name | index_name | compress_ops | compress_ops_ok | compress_time | uncompress_ops | uncompress_time |
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
| test          | test      | i_id      |            4 |              4 |            0 |              0 |              0 |
+---------------+------------+------------+--------------+-----------------+---------------+----------------+-----------------+
1 row in set (0.00 sec)

上一篇:INNODB_FT_BEING_DELETED表 |下一篇:INNODB_FT_DELETED表

Clone this wiki locally