Skip to content

INNODB_TEMP_TABLE_INFO

xiaoboluo768 edited this page Jun 7, 2020 · 2 revisions
  • 该表提供查询有关在InnoDB实例中当前处于活动状态的用户(已建立连接的用户,断开的用户连接对应的临时表会被自动删除)创建的InnoDB临时表的信息。 它不提供查询优化器使用的内部InnoDB临时表的信息查询。INNODB_TEMP_TABLE_INFO表在首次查询时创建,且数据仅存在于内存中。 不会持久化到磁盘
  • 该表为memory引擎临时表,查询该表的用户需要有process权限
  • 表定义语句
CREATE TEMPORARY TABLE `INNODB_TEMP_TABLE_INFO` (
  `TABLE_ID` bigint(21) unsigned NOT NULL DEFAULT '0',
  `NAME` varchar(202) DEFAULT NULL,
  `N_COLS` int(11) unsigned NOT NULL DEFAULT '0',
  `SPACE` int(11) unsigned NOT NULL DEFAULT '0',
  `PER_TABLE_TABLESPACE` varchar(64) DEFAULT NULL,
  `IS_COMPRESSED` varchar(64) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
  • 表字段含义
  • TABLE_ID:活跃临时表ID
  • NAME:活跃临时表的表名称
  • N_COLS:临时表中的列数量。该数字中总是包含由InnoDB创建的三个隐藏列(DB_ROW_ID,DB_TRX_ID和DB_ROLL_PTR)
  • SPACE:临时表所在表空间的表空间ID(数值)。在5.7中,未压缩的InnoDB临时表都保存在共享临时表空间文件中。共享临时表空间的数据文件定义由innodb_temp_data_file_path系统参数配置。默认情况下,位于数据目录中的名为ibtmp1文件,压缩的临时表保存在由tmpdir系统参数定义的路径下,每个表独立一个临时表空间文件。临时表空间的SPACE ID始终为非零值,且在服务器重新启动时动态随机生成一个值
  • PER_TABLE_SPACE:是否是独立临时表空间,TRUE表示临时表保存在独立表空间文件中。FALSE表示临时表保存在共享临时表空间文件中
  • IS_COMPRESSED:值为TRUE表示临时表启用了压缩
  • 表记录内容示例
admin@localhost : information_schema 06:37:36> select * from INNODB_TEMP_TABLE_INFO;
+----------+-------------+--------+-------+----------------------+---------------+
| TABLE_ID | NAME        | N_COLS | SPACE | PER_TABLE_TABLESPACE | IS_COMPRESSED |
+----------+-------------+--------+-------+----------------------+---------------+
|      130 | #sqldd5_b_0 |      4 |  165 | FALSE                | FALSE        |
+----------+-------------+--------+-------+----------------------+---------------+
1 row in set (0.00 sec)

上一篇:INNODB_LOCK_WAITS表 |下一篇:INNODB_SYS_INDEXES表

Clone this wiki locally