站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

mysql中什么时候用临时表

时间:2022-05-28 [网络编程]作者:fabuyuan 浏览:6 次

mysql中用临时表的时候:1、用到TEMPTABLE算法或者是UNION查询中的视图时;2、用到DISTINCT查询并且加上ORDER BY时;3、SQL中用到“SQL_SMALL_RESULT”选项时;4、用到FROM中的子查询时等等。

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql中什么时候用临时表

MySQL在以下几种情况会创建临时表:

1、UNION查询;

2、用到TEMPTABLE算法或者是UNION查询中的视图;

3、ORDER BY和GROUP BY的子句不一样时;

4、表连接中,ORDER BY的列不是驱动表中的;

5、DISTINCT查询并且加上ORDER BY时;

6、SQL中用到SQL_SMALL_RESULT选项时;

7、FROM中的子查询;

8、子查询或者semi-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字节);

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视频教程

以上就是mysql中什么时候用临时表的详细内容,更多请关注站长家园其它相关文章!

本文标签:  mysql

转载请注明来源:mysql中什么时候用临时表

本文永久链接地址:https://www.adminjie.com/post/12894.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • bootstrap是免费的吗

      bootstrap是免费的吗

      bootstrap是免费的;bootstrap是美国Twitter公司的设计师“MarkOtto”和“JacobThornton”合作基于HTML、CSS、...

    • Bootstrap是web容器吗

      Bootstrap是web容器吗

      Bootstrap不是web容器;web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,web容器就是处理从客户端发出的请求,而Bootstra...

    • linux下的开源数据库有哪些

      linux下的开源数据库有哪些

      linux下的开源数据库有:1、MySQL,是一个开源的关系型数据库管理系统;2、PostgreSQL,是一款“对象-关系”型数据库管理系统;3、MongoDB...

    • linux ps是什么的缩写

      linux ps是什么的缩写

      在linux中,ps是“ProcessStatus”的缩写,是监控进程的命令,通过该命令可以查看系统中所有运行进程的详细信息,例如进程的运行状态、进程是否结束...

    • mysql能在linux中使用吗

      mysql能在linux中使用吗

      mysql能在linux中使用。mysql是一个跨平台的关系型数据库管理系统,支持Linux、MacOS、Windows等多种操作系统;且linux常作为网站...

    热门文章