mysql案例~ ibtmp1临时表空间暴涨问题

一 简介: 来聊聊关于临时表文件暴涨的相关厂家

二 分析:

1 mysql5.7已经可以设置单独的临时表目录,默认放置在数据目录,文件名为ibtmp1

2 ibtmp1文件磁盘占用无法被释放,除非重启实例

三 影响语句

1 显示创建的临时表

2 DDL 的更改列等copy方式的操作,需要拷贝数据到临时表中

3 select 查询语句应用到临时表的类型

注意 1  select 查询语句会先应用tmp_table_szie(内存分配)的量,当临时存储的量超过这个参数限制是,就会在ibtmp1中申请占用空间

2 select union all语句已进行了优化,不会利用临时表空间了

3  可能类型

1 select   order by group by    GROUP BY 无索引字段或GROUP  BY+ ORDER  BY 的子句字段不一样时

2 select   (select)   子查询

3 insert into select ...from ...   表数据复制

4 select   union  select    联合语句

四 总结

如果你的磁盘很小,一点要注意ibtmp1文件的大小,优化慢查询,减少大表的copy操作

原文地址:https://www.cnblogs.com/danhuangpai/p/11367466.html

时间: 2024-08-05 19:12:07

mysql案例~ ibtmp1临时表空间暴涨问题的相关文章

MySQL Innodb--共享临时表空间和临时文件

在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=COMP

mysql ibtmp1 回收空间

关于ibtmp1 回收空间只有重启数据库了,有点坑啊 啊啊! [[email protected] data]# ls -lh total 7.6G -rw-r----- 1 mysql mysql 56 Jul 17 17:22 auto.cnf -rw-r----- 1 mysql mysql 142K Jul 18 16:56 ib_buffer_pool -rw-r----- 1 mysql mysql 12M Jul 18 17:15 ibdata1 -rw-r----- 1 mysq

案例:是谁用了我的临时表空间?

环境:RHEL 6.5 + Oracle 11.2.0.4 RAC + ADG 起初发现自己的ADG测试环境不再同步,进一步分析是DATA磁盘组空间耗尽导致的,可是最近在磁盘组上的数据库都没有做过什么测试,且测试磁盘组一直都留有2G+剩余空间,那是什么导致突然没空间了呢? 经过查询dba_data_files发现数据文件的确没有什么增长,但查询dba_temp_files发现临时文件空间增长严重. [email protected]> set lines 180 [email protected

浅谈mysql中各种表空间(tablespaces)的概念

mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一下这些表空间的概念. 1.系统表空间(System Tablespace) innodb系统表空间包含innodb数据字典(innodb相关对象的元数据),同时,双写缓冲(doublewrite buffer).改变缓冲(change buffer)和undo日志(undo logs)等也存储于系统

MySQL DLL操作--------临时表存储实战

1. 背景 * 临时表是基于会话的(session),只在当前连接可见 * 当这个连接(会话)关闭的时候,会自动drop. * 两个不同的连接(会话)里使用相同的临时表名,并且相互不会冲突,或者使用已经存在的表,但不是临时表的表名. * 当这个临时表表名已存在表的时候,存在的表被隐藏了,如果临时表被drop,存在的表就可见了 * 创建临时表用户必须有 create temporary table 权限. * Mysql 5.7之后临时表数据存储于idbdata1文件中. 2. MySQL 5.7

【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件

1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描述] 在多实例配置的/etc/my.cnf环境中,执行mysql_install_db后,启动Mysql报错. [操作步骤] /etc/my.cnf配置文件: [mysqld3307] innodb_data_file_path =ibdata1:1G:autoextend 初始化数据库: [[email protected] home]# mysql_install_db--datadir=/h

【oracle11g,14】表空间管理3:临时表空间,表空间的脱机和只读,数据文件迁移,更改表空间数据文件的大小,表空间数据文件的迁移,使用非标准块的表空间,bigfile 表空间

一.临时表空间: 如果临时表空间不足会报ora-1652错误. 二.什么时候使用临时表空间: 排序和分组 索引create或rebuild order by 或group by distinct 操作 union或intersect或minus sort-merge joins analyze 用于排序.分组.索引等操作,在pga中的sort_area中排序,会将排序的中间结果存放到临时表空间中,如果想提高排序的效率可以提高sort_area_size参数值. 临时表空间不能存放持久化对象,推荐

ORACLE 临时表空间管理

 临时表空间和临时段 临时表空间用于存放排序.临时表等数据,其信息不需要REDO,因此临时表的DML操作往往比普通表产生的REDO少很多.临时表数据变化不产生REDO,UNDO数据变化产生REDO.临时段不仅仅存在于临时表空间中,也可能存在普通表空间.比如通过CTAS创建一张表,新表的数据放在临时段中,这些临时段在CTAS完成的时候会被转换为PERMENT段.ORACLE7.3版本之前,临时段是在需要时分配,使用完毕后被删除.ORACLE7.3 推出的新算法的核心就是SEP(SORT EXTEN

解决临时表空间的报错

报错信息:[HY000](1652) [Oracle][ODBC][Ora]ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段 原因分析:oracle临时表空间不足,事务执行一般将会报ora-01652无法扩展临时段的错误.因为oracle总是尽量分配连续空间,一旦没有足够的可分配空间或者分配不连续就会出现上述的现象. 回忆下临时表空间的作用: 临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.unio