什么是临时表MySQL用于存储一些中间结果集的表,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。为什么会产生临时表:一般是由于复杂的SQL导致临时表被大量创建


临时表分为两种,一种是内存临时表,一种是磁盘临时表。内存临时表采用的是memory存储引擎,磁盘临时表采用的是myisam存储引擎(磁盘临时表也可以使用innodb存储引擎,通过internal_tmp_disk_storage_engine参数来控制使用哪种存储引擎,从mysql5.7.6之后默认为innodb存储引擎,之前版本默认为myisam存储引擎)。分别通过Created_tmp_disk_tables 和 Created_tmp_tables 两个参数来查看产生了多少磁盘临时表和所有产生的临时表(内存和磁盘)。

内存临时表空间的大小由两个参数控制:tmp_table_size 和 max_heap_table_size 。一般来说是通过两个参数中较小的数来控制内存临时表空间的最大值,而对于开始在内存中创建的临时表,后来由于数据太大转移到磁盘上的临时表,只由max_heap_table_size参数控制。针对直接在磁盘上产生的临时表,没有大小控制。


下列操作会使用到临时表:

  • union查询
  • 对于视图的操作,比如使用一些TEMPTABLE算法、union或aggregation
  • 子查询
  • join 包括not in、exist等
  • 查询产生的派生表
  • 复杂的group by 和 order by
  • Insert select 同一个表,mysql会产生一个临时表缓存select的行
  • 多个表更新
  • GROUP_CONCAT() 或者 COUNT(DISTINCT) 语句

Mysql还会阻止内存表空间的使用,直接使用磁盘临时表:

  • 表中含有BLOB或者TEXT列

  • 使用union或者union all时,select子句有大于512字节的列

  • Show columns或者 desc 表的时候,有LOB或者TEXT

  • GROUP BY 或者 DISTINCT 子句中包含长度大于512字节的列

什么是临时表,临时表什么时候删除相关推荐

  1. mysql sql语句临时表_mysql 创建与删除临时表sql语句

    临时表可能是非常有用的,在某些情况下,保持临时数据.最重要的是应该知道的临时表是,他们将当前的客户端会话终止时被删除 当你创建临时表的时候,你可以使用temporary关键字.如: 代码如下 crea ...

  2. oracle删除定义变量,Oracle存储过程,临时表的创建、删除,变量的定义和使用

    create or replace procedure Test_GetOaUserInfo  as --authid current_user操作当前存储过程的当前用户,否则提示权限不足,但是这样存 ...

  3. MySQL中关于临时表的创建到删除详细过程

    1.临时表的创建: CREATE TEMPORARY TABLE SalesSummary (product_name VARCHAR(50) NOT NULL, total_sales DECIMA ...

  4. oracle删除临时表空间一直处于等待状态

    现象: 新建一个临时表空间mytemp 然后将其改为默认临时表空间后,执行一条带order by的查询语句,查询出结构后, 修改默认临时表空间为原来的temp,然后执行 drop tablespace ...

  5. Hibernate中的JPA 2.1条件删除/更新和临时表

    从JPA 2.0版开始, EntityManager提供了方法getCriteriaBuilder()来动态构建选择查询,而无需使用Java持久性查询语言(JPQL)进行字符串连接. 在2.1版中,此 ...

  6. SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?...

    本文出处:http://www.cnblogs.com/wy123/p/6704619.html 问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表, 有些人习惯在存储过程结束的 ...

  7. 临时表temporary table

    8i以上版本. Oracle 的临时表与MSSQL的不同,临时表需要先创建,不建议在运行时使用DDL语句创建! 临时表可以看作是一张普通的物理表,在其上可以建索引.建视图,建触发器等!但它的数据是会话 ...

  8. mysql 5.7临时表空间_深度解析MySQL 5.7之临时表空间

    临时表 临时表顾名思义,就是临时的,用完销毁掉的表. 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上. 临时表有下面几种: 1.全局临时表 这种临时表从数据库实例启动后开始生效,在 ...

  9. SqlServer 中的临时表与表变量

    我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...

  10. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表

    游标 游标(Cursor)是用于查看或者处理结果集中的数据的一种方法.游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力. 游标的使用方式 定义游标:Declare 游标名称 CURSOR ...

最新文章

  1. Discuz代码分析——index.php
  2. matlab里performance,关于神经网络performance图的问题
  3. OPPO Find X3通过网站推广正式官宣,打破常规探索高端旗舰新突破!
  4. oracle+数据到+mysql数据库乱码问题_Linux系统Oracle数据库乱码问题的解决方法
  5. Android入门(六) | Activity 的启动模式 及 生产环境中关于 Activity 的小技巧
  6. Apache Hudi 在 B 站构建实时数据湖的实践
  7. OpenCV学习(22) opencv中使用kmeans算法
  8. Strings_append_学习
  9. python编写web漏洞扫描器_Python脚本实现Web漏洞扫描工具
  10. 刚刚!马云泪洒现场:青山不改,绿水长流,我要换个江湖了!后会有期!
  11. 计算机网络对等网实验报告,计算机网络实验报告_双机互联
  12. bootstrap怎么强制不换行_Bootstrap方法的软件实现
  13. 【暴强】200种好口碑便宜护肤品 - 生活至上,美容至尚!
  14. AR涂涂乐⭐三、 C#实现识别图进入扫描框显示绿色,未进入为红色功能
  15. iOS16.0:屏幕旋转
  16. 买上空气净化器了,真好... ...
  17. 左手拿叉右手拿刀——话西餐
  18. 输入存款金额并选择存款种类,计算出利息(不计利息税)和本息合计
  19. 互联网日报 | 3月5日 星期五 | 抖音成为2020欧洲杯官方合作伙伴;携程GMV连续三年全球旅企第一;华为发布好望云服务...
  20. Laravel学习记录--访问器与修改器

热门文章

  1. android M自带铃声壁纸,​Android Q 内置壁纸、铃声,带你提前进入Q时代。
  2. 我听歌用 foobar2000 V.1.18 + autolyric 歌词同步
  3. Intel HD Graphics 3000/4000核心显卡可玩游戏列表
  4. android 模拟器优化,如何设置才能流畅的使用安卓模拟器玩游戏,好坏取决于哪些因素...
  5. 动态规划——青蛙过桥
  6. 详解C语言中头文件的作用
  7. MQTT协议之中国移动ONENET
  8. 安卓一键清理内存_只需一键,即可清理iPhone内存
  9. 曼谷湄南河游船观光指南
  10. jai-imageio-1.1.jar