1,背景:
线上数据库,可能由于一些SQL因使用了临时表,如果是大表,或者产生了笛卡尔积等特殊情况下去,会占用很多临时表空间文件
2,举例:
mysql> select * from t union select * from t1 ;
此时ibtmp1 会持续增大,可能造成数据目录100%。
3,解决办法:
设置临时表空间最大值
[mysqld]
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:15M
4,验证:
mysql> select * from t union select * from t1 ;
ERROR 1114 (HY000): The table '/dbfiles/mysql_home/temp/#sql_c7c_0' is full