• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 什么时候会用到临时表?MySQL临时表的使用总结

什么时候会用到临时表?MySQL临时表的使用总结

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL临时表等相关知识,希望本文的分享对您有所帮助
摘要: MySQL在很多情况下都会用到临时表总结一下什么时候会用到临时表 什么是临时表MySQL用于存储一些中间结果集的表临时表只在当前连接可见当关闭连接时Mysql会自动删除表并释放所有空间。

MySQL在很多情况下都会用到临时表,总结一下什么时候会用到临时表:

什么是临时表: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参数控制。针对直接在磁盘上产生的临时表,没有大小控制。

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

1?? union查询

2?? 对于视图的操作,比如使用一些TEMPTABLE算法、union或aggregation

3?? 子查询

4?? semi-join 包括not in、exist等

5?? 查询产生的派生表

6?? 复杂的group by 和 order by

7?? Insert select 同一个表,mysql会产生一个临时表缓存select的行

8?? 多个表更新

9?? GROUP_CONCAT() 或者 COUNT(DISTINCT) 语句

。。。

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

1?? 表中含有BLOB或者TEXT列

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

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

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

相关推荐:

mysql临时表的使用

Mysql中的临时表使用方法

以上就是什么时候会用到临时表?MySQL临时表的使用总结的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05MongoDB学习(三)MongoDB shell 命令行的使用
  • 2018-12-05ACCESS 调用后台存储过程的实现方法
  • 2018-12-05MySQL存储过程-->长字符串扯分
  • 2017-05-11mysql下mysql-udf-http效率测试小记
  • 2017-05-11在MySQL中使用Sphinx实现多线程搜索的方法
  • 2017-05-11MySQL 存储过程中执行动态SQL语句的方法
  • 2018-12-05去掉前面的0的sql语句(前导零,零前缀)
  • 2018-12-05透明数据加密(TDE)库的备份和还原
  • 2018-12-05详细介绍关于MYSQL和ORACLE的区别
  • 2018-12-05mysql odbc字符集设置(中文显示乱码)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 深入了解在Linux下完全卸载mysql
    • Oracle9i的全文检索技术开发者网络Oracle
    • 清理MySQL数据库的缓存及修改论坛密码详解
    • linux下mysql链接被防火墙阻止的解决方法
    • Oracle 安装和卸载问题收集(集合篇)第1/6页
    • Mysql-聚簇索引
    • Oracle 11g Release (11.1) 索引底层的数据结构
    • MSSQL2005数据库备份导入MSSQL2000
    • Redis学习笔记-List数据类型
    • 分享MySql基于ssl安全连接的主从复制的详细介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有