[转载] MYSQL 5.7中临时文件的使用
2018-03-02 23:48
363 查看
原文:http://blog.itpub.net/7728585/viewspace-2146356/
使用临时文件的情况,有如下几种:
一、使用tmpdir
1、执行计划file sort 文件名字MY开头
lsof|grep delete
如:/tmp/MYdRH1GW (deleted)
2、大事物binary log缓存 文件名字ML开头
lsof|grep delete
如:/tmp/MLq9INFu (deleted)
3、压缩的tempory table
CREATE 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 * from information_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 key
alter table testsort add key(id);
lsof|grep delete
如:
/tmp/ibCxlYQg (deleted)
/tmp/ib51nvZ1 (deleted)
设置 innodb_tmpdir可以将这类文件放到指定的目录
二、使用innodb_temp_data_file_path
1、执行计划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 ddl
1、ALGORITHM copy 名字为 #sql-
alter table testsort ALGORITHM=copy ,add im int ;
#sql-6b82_6.frm
#sql-6b82_6.ibd
2、ALGORITHM inplace 名字为 #sql-ib
alter table test add key id int
比如
#sql-6b82_6.frm
#sql-ib59-867962583.ibd
但是涉及到排序比如add key 则使用tmpdir或者innodb_tmpdir见上
使用临时文件的情况,有如下几种:
一、使用tmpdir
1、执行计划file sort 文件名字MY开头
lsof|grep delete
如:/tmp/MYdRH1GW (deleted)
2、大事物binary log缓存 文件名字ML开头
lsof|grep delete
如:/tmp/MLq9INFu (deleted)
3、压缩的tempory table
CREATE 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 * from information_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 key
alter table testsort add key(id);
lsof|grep delete
如:
/tmp/ibCxlYQg (deleted)
/tmp/ib51nvZ1 (deleted)
设置 innodb_tmpdir可以将这类文件放到指定的目录
二、使用innodb_temp_data_file_path
1、执行计划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 ddl
1、ALGORITHM copy 名字为 #sql-
alter table testsort ALGORITHM=copy ,add im int ;
#sql-6b82_6.frm
#sql-6b82_6.ibd
2、ALGORITHM inplace 名字为 #sql-ib
alter table test add key id int
比如
#sql-6b82_6.frm
#sql-ib59-867962583.ibd
但是涉及到排序比如add key 则使用tmpdir或者innodb_tmpdir见上
相关文章推荐
- 使用zip压缩文件方式安装mysql 5.7
- 【mysql】MySQL 5.7 参考手册—— 使用非安装版的 Zip 档案文件在 windows 上安装 MySQL
- 使用PowerDesinger将mysql中的数据库逆向生成为PDM文件 转载 2017年02月04日 12:44:11 1574 Part 1 PowerDesigner连接mysql逆向生成pd
- 使用tmpfs存放MySQL的临时文件的问题一则
- Mysql中的临时表使用方法讲解
- python中临时文件的使用
- 如何使用.NET配置文件(转载)
- 不再使用临时文件,而是直接将html字符串读入webbrower中
- 转载:如何使用XCodeFactory自动生成XML配置文件和对应的解析类
- [Visual C++]在Win2000/XP上安静地替换正在使用的系统文件【转载/收藏】
- 使用DEF文件修复函数名(转载)
- MYSQL学习笔记(5)配置:使用选项文件
- Mysql中的临时表使用方法讲解
- [转载] 使用CFileDialog选择多个文件
- 在linux下使用c语言操作临时文件
- Mysql中的临时表使用方法讲解
- 如何使用.NET配置文件(转载)
- 如何在linux下使用c语言操作临时文件
- J2ME中使用pauseApp控制手机临时退出JAVA程序(转载)
- 使用COS上传文件(转载)