MySQL问答系列之什么情况下会用到临时表

更新时间:2023-05-14 07:22:44 阅读: 评论:0

swbMySQL问答系列之什么情况下会⽤到临时表
临时表介绍exception例外
什么是临时表:MySQL⽤于存储⼀些中间结果集的表,临时表只在当前连接可见,当关闭连接时,Mysql会⾃动删除表并释放所有空间。为什么会产⽣临时表:⼀般是由于复杂的SQL导致临时表被⼤量创建
临时表分为两种,⼀种是内存临时表,⼀种是磁盘临时表。内存临时表采⽤的是memory存储引擎,磁盘临时表采⽤的是myisam存储引擎(磁盘临时表也可以使⽤innodb存储引擎,通过internal_tmp_disk_storage_engine参数来控制使⽤哪种存储引擎,从mysql5.7.6之后默认为innodb存储引擎,之前版本默认为myisam存储引擎)。分别通过Created_tmp_disk_tables 和Created_tmp_tables 两个参数来查看产⽣了多少磁盘临时表和所有产⽣的临时表(内存和磁盘)。
MySQL在以下⼏种情况会创建临时表:
1、UNION查询;
2、⽤到TEMPTABLE算法或者是UNION查询中的视图;
普京获诺贝尔奖提名3、ORDER BY和GROUP BY的⼦句不⼀样时;
4、表连接中,ORDER BY的列不是驱动表中的;
别再犹豫国语版全集41
5、DISTINCT查询并且加上ORDER BY时;
6、SQL中⽤到SQL_SMALL_RESULT选项时;
7、FROM中的⼦查询;
sheila2012年学科评估8、⼦查询或者mi-join时创建的表;
EXPLAIN 查看执⾏计划结果的 Extra 列中,如果包含 Using Temporary 就表⽰会⽤到临时表。
当然了,如果临时表中需要存储的数据量超过了上限( tmp-table-size 或 max-heap-table-size 中取其⼤者),这时候就需要⽣成基于磁盘的临时表了。
在以下⼏种情况下,会创建磁盘临时表:
1、数据表中包含BLOB/TEXT列;
2、在 GROUP BY 或者 DSTINCT 的列中有超过 512字符的字符类型列(或者超过 512字节的⼆进制类型列,在5.6.15之前只管是否超过512字节);
friendswithbenefits
3、在SELECT、UNION、UNION ALL查询中,存在最⼤长度超过512的列(对于字符串类型是512个字符,对于⼆进制类型则是512字节);
4、执⾏SHOW COLUMNS/FIELDS、DESCRIBE等SQL命令,因为它们的执⾏结果⽤到了BLOB列类型。
从5.7.5开始,新增⼀个系统选项 internal_tmp_disk_storage_engine 可定义磁盘临时表的引擎类型为 InnoDB,⽽在这以前,只能使⽤ MyISAM。⽽在5.6.3以后新增的系统选项 default_tmp_storage_engine 是控制 CREATE TEMPORARY TABLE 创建的临时表的引擎类型,在以前默认是MEMORY,不要把这⼆者混淆了。
详见下例
mysql> t default_tmp_storage_engine = "InnoDB";
verly-rw-rw---- 1 mysql mysql 8558 Jul 7 15:22 #sql4b0e_10_0.frm -- InnoDB引擎的临时表
-rw-rw---- 1 mysql mysql 98304 Jul 7 15:22 #sql4b0e_10_0.ibd
-rw-rw---- 1 mysql mysql 8558 Jul 7 15:25 #sql4b0e_10_2.frm
mysql> t default_tmp_storage_engine = "MyISAM";
-rw-rw---- 1 mysql mysql 0 Jul 7 15:25 #sql4b0e_10_2.MYD -- MyISAM引擎的临时表
藏青色英文-rw-rw---- 1 mysql mysql 1024 Jul 7 15:25 #sql4b0e_10_2.MYI
mysql> t default_tmp_storage_engine = "MEMORY";大学英语b统考题库
-rw-rw---- 1 mysql mysql 8558 Jul 7 15:26 #sql4b0e_10_3.frm -- MEMORY引擎的临时表
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔
交流,谢谢⼤家对的⽀持。

本文发布于:2023-05-14 07:22:44,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/107940.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   超过   查询   磁盘   引擎
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图