-
Notifications
You must be signed in to change notification settings - Fork 111
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)
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!