在MySQL 5.7版本中引入Online DDL特性和共享临时表空间特性,临时数据主要存放形式为:

1、DML命令执行过程中文件排序(file sore)操作生成的临时文件,存储目录由参数tmpdir控制,以MY开头
2、超大事务提交生成binary log过程中用于数据缓存的临时文件,存储目录由参数tmpdir控制,以ML开头
3、使用ROW_FORMAT=COMPRESSED创建的压缩InnoDB临时表,存储目录由参数tmpdir控制,以frm和idb结尾
4、没用ROW_FORMAT=COMPRESSED创建的非压缩压缩InnoDB临时表,存储在由参数innodb_temp_data_file_path指定的共享临时文件中
5、使用COPY模式的Onine DDL创建的临时文件,存储在操作表相同目录下,以sql-开头,以frm和idb结尾
6、使用INPLACE模式的Onine DDL创建的临时文件,存储在操作表相同目录下,以sql-和sql-ib开头,以frm和idb结尾
7、Online DDL操作过程中排序操作使用的临时文件,存储目录由参数tmpdir控制,以ib开头
8、MySQL InnoDB存储引擎层使用的内部临时表,存储在由参数innodb_temp_data_file_path指定的共享临时文件中

MySQL 共享临时表空间(shared temporary tablespace)
在MySQL 5.7.1版本中引入,将临时表空间从系统表空间中独立处理,用来存放:
1、非压缩InnoDB临时表(non-compressed InnoDB temporary tables)
2、关系对象(related objects)
3、回滚段(rollback segment)

由于共享临时表空间主要存放的数据无需参与Crash Recovery,重启时可以被删除重建,方便回收空间。
共享临时表空间由参数innodb_temp_data_file_path控制,默认配置为ibtmp1:12M:autoextend,未指定路径时存在在innodb_data_home_dir下。

使用下面命令能查看MySQL临时目录下的文件

lsof |grep '/export/data/mysql/tmp/'

输出为:

mysqld       mysql    5u      REG               ,                /export/data/mysql/tmp/ibW1DoSr (deleted)
mysqld mysql 6u REG , /export/data/mysql/tmp/ibAhuhtS (deleted)
mysqld mysql 7u REG , /export/data/mysql/tmp/ibiiHa4i (deleted)
mysqld mysql 8u REG , /export/data/mysql/tmp/ibeje7dX (deleted)
mysqld mysql 13u REG , /export/data/mysql/tmp/ibLORUJC (deleted)
mysqld mysql 2943u REG , /export/data/mysql/tmp/MLVChF9b (deleted)
mysqld mysql 3785u REG , /export/data/mysql/tmp/MLx6V0TO (deleted)
mysqld mysql 4795u REG , /export/data/mysql/tmp/MLz5r2Yv (deleted)
mysqld mysql 4928u REG , /export/data/mysql/tmp/ML7ivmrd (deleted)
mysqld mysql 5414u REG , /export/data/mysql/tmp/MLx4HGxW (deleted)
mysqld mysql 6105u REG , /export/data/mysql/tmp/MLADScmK (deleted)
mysqld mysql 6314u REG , /export/data/mysql/tmp/MLG8aCpz (deleted)
mysqld mysql 6315u REG , /export/data/mysql/tmp/MLJ7MuCo (deleted)

可以看到该目录下有ML开头和ib开头的文件,用来缓存BINLOG和排序结果。

MySQL Innodb--共享临时表空间和临时文件的更多相关文章

  1. Mysql InnoDB 共享表空间和独立表空间

    前言:学习mysql的时候总是习惯性的和oracle数据库进行比较.在学习mysql InnoDB的存储结构的时候也免不了跟oracle进行比较.Oracle的数据存储有表空间.段.区.块.数据文件: ...

  2. Linux UDEV和为MySQL InnoDB共享表空间配置裸设备

    ⑴ UDEV 基础         udev 可管理保存在/dev 目录下的文件.文件只有在接入相应设备后才会生成.设备被拔出后自动删除     它还允许用户添加规则.以便修改/dev中默认的名称和权 ...

  3. 如何开启 MySQL InnoDB 共享表空间和独立表空间

    修改数据库的表空间管理方式 修改my.ini文件的innodb_file_per_table的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独立表空间: innodb_file_per_ta ...

  4. 【转载】Innodb共享表空间VS独立表空间

    http://www.mysqlsupport.cn/innodb%E5%85%B1%E4%BA%AB%E8%A1%A8%E7%A9%BA%E9%97%B4vs%E7%8B%AC%E7%AB%8B%E ...

  5. [Mysql]Innodb 独立表空间和共享表空间

    innodb有2中表空间方式: 共享表空间 和 独立表空间 查询数据的设置: show variables like '%per_table'; 默认是共享表空间,独立表空间在配置文件中添加 inno ...

  6. 使用参数innodb_file_per_table支持MySQL InnoDB表数据共享空间自动收缩

    http://heylinux.com/archives/2367.html http://blog.csdn.net/ywh147/article/details/8996022 使用过MySQL的 ...

  7. MySQL 5.7临时表空间

    MySQL 5.7起,开始采用独立的临时表空间(和独立的undo表空间不是一回事哟),命名ibtmp1文件,初始化12M,且默认无上限. 选项 innodb_temp_data_file_path 可 ...

  8. mysql之 共享表空间与独立表空间、frm,MYD,MYI.idb,par文件说明

    一.共享表空间与独立表空间MySQL5.5默认是共享表空间 ,5.6中,默认是独立表空间. 共享表空间:ibdata1是InnoDB的共享表空间,默认配置是把全部表空间存放到ibdata1中,因此而造 ...

  9. MySQL innodb表使用表空间物理文件复制或迁移表

    MySQL InnoDB引擎的表通过拷贝物理文件来进行单表或指定表的复制,可以想到多种方式,今天测试其中2种: 将innodb引擎的表修改为Myisam引擎,然后拷贝物理文件 直接拷贝innodb的表 ...

随机推荐

  1. tf.image.crop_and_resize

    https://blog.csdn.net/m0_38024332/article/details/81779544 将图片剪切下来,池化为固定大小.可以快速的对proposal进行池化

  2. (5)Flask项目会员登录页

    一.添加登录和登出的路由 修改app/home/views.py内容,增加登录("/login/")和登出("/logout/")的路由: # coding:u ...

  3. redis中key和value的存储大小限制

    String类型:一个String类型的value最大可以存储512M List类型:list的元素个数最多为2^32-1个,也就是4294967295个. Set类型:元素个数最多为2^32-1个, ...

  4. 前台页面long类型数字被四舍五入的解决办法

    转: 前台页面long类型数字被四舍五入的解决办法 2018-05-28 11:02:38 宣午刚001 阅读数 3566更多 分类专栏: java开发   版权声明:本文为博主原创文章,遵循CC 4 ...

  5. mysql查询之获取第n高薪水

    获取 Employee 表中第 n 高的薪水(Salary) +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 ...

  6. k8s 修改节点角色和删除节点

    修改节点角色: kubectl label nodes cn-thin05 node-role.kubernetes.io/node= 卸载节点: kubectl drain jupiter --de ...

  7. ddl语法

    创建表: create table 表名 ( 字段1 varchar2(32) not null primary key, 字段2 date not null ) tablespace 表空间名 事务 ...

  8. bat启动OpenOffice4

    start "" /d "C:\Program Files (x86)\OpenOffice 4\program" "soffice.exe" ...

  9. 八、spring生命周期之BeanPostProcessor

    BeanPostProcessor我们一般称为Bean的后置处理器,它与我们前面介绍的InitialingBean.init-method等一样,都是在bean的初始化时被调用,具体的用法我们在举例中 ...

  10. [转帖]Linux 下软链接和硬链接的区别

    Linux 下软链接和硬链接的区别 http://os.51cto.com/art/201911/605267.htm 软连接 文件是小的 只是一个链接 删除和其他处理不影响 原始文件的计数 删除源文 ...