mysql中的临时表

转载 2004年09月28日 00:52:00

      mysql中的临时表
-------------------------------------------------------------------------------------------------
 
来源:穿越时光
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快
些,然后多这些表运行查询。

创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)

临时表将在你连接MySQL期间存在。当你断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时候删除表并释放空间。

DROP TABLE tmp_table

如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在,临时表将有必要屏蔽(隐藏)非临时表tmp_table。

如果你声明临时表是一个HEAP表,MySQL也允许你指定在内存中创建它:

 CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP
 

因为HEAP表存储在内存中,你对它运行的查询可能比磁盘上的临时表快些。然而,HEAP表与一般的表有些不同,且有自身的限制。详见MySQL参考手册。

正如前面的建议,你应该测试临时表看看它们是否真的比对大量数据库运行查询快。如果数据很好地索引,临时表可能一点不快。

MySQL 中的两种临时表

外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时...
  • a494303877
  • a494303877
  • 2017年03月02日 17:34
  • 957

mysql临时表在工作中的使用

工作中业务需要用到mysql临时表,临时表是会话级别的,即使多个session创建的表名一样,都相互不影响,会话结束,表格自动删除。业务需求是:选择时间从多张表中查询软件的Top20下载和对应的安装数...
  • u013897685
  • u013897685
  • 2016年09月28日 18:15
  • 1365

MySQL使用临时表的情况

原文地址:http://www.tuicool.com/articles/BBRFN3B MySQL在以下几种情况会创建临时表: 1、UNION查询; 2、用到TEMPTABLE算法或者是...
  • gmgmyxx
  • gmgmyxx
  • 2017年01月16日 11:13
  • 961

MySQL中的两种临时表

http://mysql.taobao.org/monthly/2016/06/07/ 外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表...
  • chinajobs
  • chinajobs
  • 2017年01月17日 14:58
  • 1220

mysql临时表创建问题

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。...
  • wjc19911118
  • wjc19911118
  • 2012年07月18日 10:22
  • 4414

mysql 批量更新临时表中的数据

CREATE     PROCEDURE `301`.`useCursor`()         BEGIN   DECLARE msg VARCHAR(255);   DECLA...
  • c1052981766
  • c1052981766
  • 2015年09月23日 18:05
  • 294

MySql中的临时表

mysql创建临时表:   CREATE TEMPORARY TABLE temp1(myname VARCHAR(10) NOT NULL); mysql创建内存表:   CREATE T...
  • leipeng321123
  • leipeng321123
  • 2015年11月06日 10:24
  • 1573

MySql 存储过程 临时表 无法插入数据

今天在写存储过程的时候,发现一个问题就是,sql明明能查出数据,为啥无法插入到临时表、实体表呢? 存储过程截取如下:BEGIN /******************************...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2017年01月11日 12:26
  • 1033

mysql存储过程建立临时表,从别的表赋值给这个临时表

DELIMITER // CREATE PROCEDURE baseweb.test16() BEGIN     DROP TABLE d;     CREATE TEMPORARY TABL...
  • Bennett2251
  • Bennett2251
  • 2016年11月16日 21:54
  • 1455

MySQL select into临时表

Mysql sql语句实现复制一张表中的选中的字段到一张新表中去或者说 将表的查询结果存储到一张临时表里。 1.首先想到的是用select into,但是MYSQL不支持这一语法 ...
  • linybo
  • linybo
  • 2015年01月19日 17:57
  • 6561
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql中的临时表
举报原因:
原因补充:

(最多只允许输入30个字)