You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看MySQL中用户创建的临时表大小?

查看MySQL临时表大小的解决方法

因为MySQL临时表是会话级别的私有对象,不会被记录到information_schema.TABLES系统表或SHOW TABLE STATUS的结果中,所以你之前的方法无法获取到它的大小。针对不同存储引擎的临时表,可以用以下方法查看:

1. MyISAM临时表

MyISAM临时表会在MySQL的临时目录生成物理文件,你可以通过以下步骤查看:

  • 先执行SHOW VARIABLES LIKE 'tmpdir';获取临时文件存储路径
  • 前往该目录,找到以#sql_开头的文件:.MYD是数据文件,.MYI是索引文件,将两个文件的大小相加就是临时表的总大小

2. InnoDB临时表

方法一:查询INNODB_TEMP_TABLE_INFO视图(MySQL 5.7+)

执行以下SQL可以直接获取当前会话的InnoDB临时表信息,其中SPACE字段代表表空间占用的页数(InnoDB默认页大小为16KB),计算后就能得到表的大致大小:

SELECT 
  NAME AS temp_table_name,
  N_COLS AS column_count,
  SPACE * 16 / 1024 AS size_in_KB,
  SPACE * 16 / 1024 / 1024 AS size_in_MB
FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO;

方法二:查看InnoDB引擎状态

执行SHOW ENGINE INNODB STATUS;,在输出结果中找到Temp table相关段落,里面会包含临时表的大小、使用的空间等细节信息。


内容的提问来源于stack exchange,提问作者Ankit Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:31:03