前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[转载] MYSQL 5.7中临时文件的使用

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

作者头像
保持热爱奔赴山海
发布2019-09-17 14:05:53
6950
发布2019-09-17 14:05:53
举报
文章被收录于专栏:数据库相关

原文: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  ; 查询

代码语言:javascript
复制
+----------+--------------+--------+-------+----------------------+---------------+
| 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;  查询

代码语言:javascript
复制
+----------+--------------+--------+-------+----------------------+---------------+
| 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见上

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/03/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档