专栏首页二狗的DBA之路[转载] MYSQL 5.7中临时文件的使用

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

原文: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见上

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Prometheus pushgateway的部署使用

    tar xf pushgateway-0.8.0.linux-amd64.tar.gz -C /usr/local/

    二狗不要跑
  • pipelinedb 初探

    http://docs.pipelinedb.com/installation.html#installation

    二狗不要跑
  • mysql如何保证redolog和binlog的一致性,安全性,效率。

    http://dwchaoyue.blog.51cto.com/2826417/1784509

    二狗不要跑
  • 在python中使用xlrd,xlwt读写excel

    晓歌
  • Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

    2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新...

    网站安全专家
  • Innodb相关的一些参数

    这个值一般设置为8M或者16M,我们只需要保证每秒产生的事务量在这个大小之内即可,因为每一秒种innodb会将重做日志缓冲刷新到日志文件中。

    AsiaYe
  • linux基础命令2

    date命令 查看年月日 # date +%F 2017-02-22 查看时分秒 # date +%T 15:12:50 查看星期 date +%a Wed ...

    零月
  • 数据加密

    /* 功能:数据加密 日期:2013-05-26 */ #include<stdio.h> #include<stdlib.h> #include<...

    汐楓
  • 漫画:位运算系列篇(只出现一次的数字)

    第136题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    程序员小浩

扫码关注云+社区

领取腾讯云代金券