mysql 临时文件 作用_[转载] MYSQL 5.7中临时文件的使用

使用临时文件的情况,有如下几种:

一、使用tmpdir1、执行计划file sort    文件名字MY开头lsof|grep delete

如:/tmp/MYdRH1GW (deleted)

2、大事物binary log缓存 文件名字ML开头lsof|grep delete

如:/tmp/MLq9INFu (deleted)

3、压缩的tempory tableCREATE TEMPORARY TABLE tmp_table1(id int) ROW_FORMAT=COMPRESSED ;

这种情况下,会在/tmp/目录下生成2个文件(frm、ibd文件),类似:#sql6b82_X_7.frm 、#sql6b82_X_7.ibd  -- 文件名中的X对应的是show processlist里面的连接编号

可以使用select*frominformation_schema.INNODB_TEMP_TABLE_INFO  ; 查询

+----------+--------------+--------+-------+----------------------+---------------+

| TABLE_ID | NAME         | N_COLS | SPACE | PER_TABLE_TABLESPACE | IS_COMPRESSED |

+----------+--------------+--------+-------+----------------------+---------------+

|       47 | #sql1913_8_0 |      4 |    64 | TRUE                 | TRUE          |

+----------+--------------+--------+-------+----------------------+---------------+

4、online DDL 涉及排序比如add keyalter table testsort add key(id);

lsof|grep delete

如:

/tmp/ibCxlYQg (deleted)

/tmp/ib51nvZ1 (deleted)

设置 innodb_tmpdir可以将这类文件放到指定的目录

二、使用innodb_temp_data_file_path1、执行计划use temporay table 5.7以后为innodb 内部表2、非压缩tempory table

这种情况下,会在/tmp/目录下生成一个类似#sql1913_X_0.frm 的单个frm文件。-- 实际上这个frm文件名中的X对应的是show processlist里面的连接编号

可以使用 select * from information_schema.INNODB_TEMP_TABLE_INFO;  查询

+----------+--------------+--------+-------+----------------------+---------------+

| TABLE_ID | NAME         | N_COLS | SPACE | PER_TABLE_TABLESPACE | IS_COMPRESSED |

+----------+--------------+--------+-------+----------------------+---------------+

|       44 | #sql1913_4_0 |      5 |    63 | FALSE                | FALSE         |

+----------+--------------+--------+-------+----------------------+---------------+

这些也看不到 表现为innodb表

三、使用innodb data就是online ddl1、ALGORITHM copy 名字为 #sql-alter table testsort ALGORITHM=copy ,add  im int  ;

#sql-6b82_6.frm

#sql-6b82_6.ibd

2、ALGORITHM inplace 名字为 #sql-ibalter table test add key id int

比如

#sql-6b82_6.frm

#sql-ib59-867962583.ibd

但是涉及到排序比如add key 则使用tmpdir或者innodb_tmpdir见上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值