btmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,在支持大文件的系统这个文件大小是可以无限增长的。
临时表释放后,空间会释放,但是磁盘空间不会释放,空闲空间可以被复用。释放磁盘空间只能重启。
解决办法
1.通过修改配置文件限制ibtmp1文件大小:innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
2.优化SQL,避免使用临时表。
3.重启mysql服务释放ibtmp1文件