`
caijingbin0207
  • 浏览: 107042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL临时表

阅读更多

                                                         MySQL临时表

 

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

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

Sql代码

1.  CREATE TEMPORARY TABLE tmp_table (   

2.  name VARCHAR(10) NOT NULL,   

3.  value INTEGER NOT NULL  

4.  )  

 

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

DROP TABLE tmp_table

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

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

 

Sql代码

1.  CREATE TEMPORARY TABLE tmp_table (   

2.  name VARCHAR(10) NOT NULL,   

3.  value INTEGER NOT NULL  

4.  ) TYPE = HEAP  

 

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

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

 

1、临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表:
1)
定义字段
CREATE TEMPORARY TABLE tmp_table (
 
      name VARCHAR(10) NOT NULL,
 
      value INTEGER NOT NULL
 
)
2)
直接将查询结果导入临时表
CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name

2
、另外mysql也允许你在内存中直接创建临时表,因为是在内存中所以速度会很快,语法如下:
CREATE TEMPORARY TABLE tmp_table (
 
     name VARCHAR(10) NOT NULL,
 
     value INTEGER NOT NULL
 
) TYPE = HEAP
 

3
、从上面的分析可以看出临时表的数据是会被清空的,你断开了连接就会被自动清空,但是你程序中不可能每发行一次sql就连接一次数据库吧(如果是这样的话,那就会出现你担心的问题,如果不是就没有问题),因为只有断开数据库连接才会被清空数据,在一个数据库连接里面发行多次sql的话系统是不会自动清空临时表数据的。

0
4
分享到:
评论

相关推荐

    mysql临时表用法分析【查询结果可存在临时表中】

    MySQL临时表是一种在会话范围内创建的特殊类型的表,它仅对当前会话可见,并在会话结束时自动删除。这种技术在处理复杂查询、中间数据处理或报表生成时非常有用,因为它允许用户将查询结果暂存起来,以便进一步处理...

    Mysql临时表和派生表

    ### MySQL临时表与派生表详解 #### 一、MySQL临时表 **1.1 临时表概述** MySQL中的临时表是一种特殊的表类型,主要用于存储临时数据或中间结果集,适用于那些需要多次查询同一结果集的场景。根据存储位置的不同,...

    Mysql临时表使用说明

    ### MySQL临时表使用详解 #### 引言 在处理大规模数据集时,高效的数据操作成为了一项关键技能。MySQL作为一款广泛使用的数据库管理系统,提供了多种工具和策略来优化查询性能。其中,临时表是一个尤为重要的特性...

    MySQL临时表那些事

    接下来,我将详细介绍关于MySQL临时表的创建语法、使用实例和一些注意事项。 首先,创建临时表的基本语法和创建普通表的语法是相似的。我们通常会在创建时加上TEMPORARY关键字,这样就指明了这是一个临时表。例如,...

    MySQL临时表空间优化:提升数据库性能的关键

    ### MySQL 临时表空间优化:提升数据库性能的关键 #### MySQL 特点概述 MySQL 是一个广泛使用的开源关系型数据库管理系统(RDBMS),基于 SQL 语言。它作为 LAMP 技术栈的一部分,在构建动态网站和 Web 应用程序...

    MySQL临时表的简单用法介绍

    MySQL临时表是一种在数据库会话期间创建和使用的特殊类型的表,它们主要用于存储中间查询结果,以便在复杂的查询或处理大量数据时提高性能。临时表的名字只对当前会话可见,这意味着其他用户无法看到或访问你的临时...

    MYSQL 临时表用法总结

    MySQL中的临时表是一种非常实用的工具,特别是在处理复杂的数据操作和优化查询性能时。下面将详细解释临时表的使用方法及其特点。 1. **临时表的创建与生命周期** 创建临时表的方式很简单,只需将常规的`CREATE ...

    Mysql临时表原理及创建方法解析

    MySQL临时表是数据库管理系统中的一种特殊表格,它主要用于在单个会话期间存储临时数据,以便在多个查询之间共享和处理。临时表的生命周期仅限于创建它的会话,一旦会话结束,临时表及其所有数据都会被自动删除,这...

    pymysql通过读取mysql临时表数据更新或插入主表

    pymysql+mysql通过读取临时表数据更新或插入主表,原创手写已测可运行效果好。

    MySQL性能分析之临时表

    ### MySQL性能分析之临时表 #### 一、临时表与磁盘临时表 在MySQL数据库管理系统中,**临时表**是一种特殊类型的表,主要用于存储中间结果集,它可以帮助执行一些复杂的查询操作,如`GROUP BY`、`DISTINCT`、某些`...

    mysql 临时表 cann't reopen解决方案

    MySQL中的临时表是一种特殊类型的表,它只存在于当前用户会话的上下文中,不会影响其他用户或会话。当会话结束时,临时表会自动删除,这使得它们非常适合用于存储中间结果或执行复杂查询时的暂存数据。然而,有时在...

    关于JDBC与MySQL临时表空间的深入解析

    【JDBC与MySQL临时表空间】的深入解析 在数据库开发中,临时表空间是一个重要的概念,它主要用于处理数据库的排序操作以及存储临时表和中间排序结果等瞬时数据。临时表空间对于优化复杂的SQL查询至关重要,特别是...

    mysql 临时表 cann’t reopen解决方案

    当你创建临时表的时候,你可以使用temporary关键字。如: 代码如下: create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null); 或 代码如下: create temporary table if not exists ...

    浅谈MySQL临时表与派生表

    MySQL数据库在处理复杂查询时,有时会利用内部的临时表和派生表来优化操作,这两者都是在处理数据时创建的临时数据结构,但它们的用途和生命周期有所不同。 临时表,顾名思义,是一种在用户会话期间创建并使用的表...

    MySQL使用临时表加速查询的方法

    使用MySQL临时表,有时是可以加速查询的,下面就为您详细介绍使用MySQL临时表加速查询的方法。 把表的一个子集进行排序并创建MySQL临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器...

    MySQL中关于临时表的一些基本使用方法

    以下是关于MySQL临时表的一些关键知识点: 1. **创建临时表**: - 使用`CREATE TEMPORARY TABLE`语句来创建临时表,与常规的`CREATE TABLE`语句相似,但添加了`TEMPORARY`关键字。 - 在提供的示例中,创建了一个...

Global site tag (gtag.js) - Google Analytics