解析Mysql临时表及特点_Mysql

临时表是当连接没有断开时存在,一旦断开就不会存在,临时表的数据和结构都在内存中,可以做个测验,你创建一个临时表,但是到响应的数据目录下并不会找到.frm文件
mysql> CREATE TEMPORARY TABLE tmp_table (
    ->
    -> name VARCHAR(10) NOT NULL,
    -> value INTEGER NOT NULL
    ->
    -> ) ;
Query OK, 0 rows affected (0.38 sec)

查看表状态
mysql> show CREATE  TABLE tmp_table \G
*************************** 1. row ***************************
       Table: tmp_table
Create Table: CREATE TEMPORARY TABLE `tmp_table` (
  `name` varchar(10) NOT NULL,
  `value` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

它和正常表没有什么区别,但是数据是存在内存中的,你在响应的数据目录下找不到数据文件。
一旦断开连接你再查该表就会消失。

和临时表有点相似的是内存表,有的也称堆表。
mysql> CREATE TABLE mem_table (
    ->
    -> name VARCHAR(10) NOT NULL,
    -> value INTEGER NOT NULL
    ->
    -> ) TYPE = HEAP;
Query OK, 0 rows affected, 1 warning (0.01 sec)

查看表状态
mysql> show CREATE  TABLE mem_table \G
*************************** 1. row ***************************
       Table: mem_table
Create Table: CREATE TEMPORARY TABLE `mem_table` (
  `name` varchar(10) NOT NULL,
  `value` int(11) NOT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

你在数据目录下回发现一个mem_table.frm文件,所以内存表的数据是放在磁盘上的,但是插入数据后发现磁盘上没有数据文件,所以数据是在内存中的,因为采用的是memory 引擎。一旦down机数据将不存在。该表因为数据是在内存中,所以数据会很快。缺点是安全性。

时间: 2024-09-03 18:14:09

解析Mysql临时表及特点_Mysql的相关文章

解析Mysql Profiling的使用_Mysql

profiling是个很好用的mysql性能分析工具,今儿就来试验下profiling的功能.感谢 有爱玫瑰的博文:mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况.分析器可以更好的展示出不良 SQL 的性能问题所在.下面我们举例介绍一下MySQL SQL Profiler的使用方法:首先,开启 MySQL SQL Profiler 复制代码 代码如下: mysql> SELECT @@profiling;    +-------------+   

解析MySQL的information_schema数据库_Mysql

information_schema数据库是在mysql的版本5.0之后产生的,一个虚拟数据库,物理上并不存在.information_schema数据库类似与"数据字典",提供了访问数据库元数据的方式,即数据的数据.比如数据库名或表名,列类型,访问权限(更加细化的访问方式). 其中重要的表有:SCHEMATA表---SCHEMATA表提供了当前mysql实例中所有数据库的信息.是show databases的结果取之此表.TABLES表---TABLES表提供了关于数据库中的表的信息

深度解析MySQL 5.7之临时表空间_Mysql

临时表 临时表顾名思义,就是临时的,用完销毁掉的表. 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上. 临时表有下面几种: 1.全局临时表 这种临时表从数据库实例启动后开始生效,在数据库实例销毁后失效.在MySQL里面这种临时表对应的是内存表,即memory引擎. 2.会话级别临时表 这种临时表在用户登录系统成功后生效,在用户退出时失效.在MySQL里的临时表指的就是以create temporary table 这样的关键词创建的表. 3.事务级别临时表 这种临时表在事务开

解析MYSQL BINLOG 二进制格式(3)--QUERY_EVENT

解析MYSQL BINLOG 二进制格式(3)--QUERY_EVENT 原创:转载请说明出处谢谢!上接http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备工作  http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT  class:Query_log_ev

mysql 临时表、内存表和视图

虚拟表,顾名思义,就是实际上并不存在(物理上不存在),但是逻辑上存在的表.这样说很抽象,还是看一些实际的例子吧.在MySQL中,存在三种虚拟表:临时表.内存表和视图. 一.mysql临时表1.什么是临时表临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作. 临时表的数据和表结构都储存在内存之中,退出时,其所占的空间会自动被释放.2.创建临时表(1)定义字段CREATE TEMPORARY TABLE tmp_table (        name VARCHAR(

MySQL临时表的简单用法详解

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. 临时表与内存表 内存表分为2种,但共同点是,重起数据库以后,内存中的数据全部丢失,内存表的功能有部分的限制,有些属性不能像正常表一样使用,所以请大家使用的时候谨慎参照官方文档.下面只是抛砖引玉. 1.临时表:表建在内存里,数据在内存里 2.内存表:表建在磁盘里,数据在内存里 MySQL临时表需要简

MySQL临时表的优化方案

MySQL 是全球最受欢迎的开源数据库,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用.Web2.0 时代,风靡全网的社区论坛软件系统 Discuz 和博客平台 Wordpress 均基于 MySQL 实现底层架构.Web3.0 时代,阿里巴巴.Facebook.Google 等大型互联网公司都采用更为灵活的 MySQL 构建了成熟的大规模数据库集群.阿里云数据库 MySQL 版基于 Alibaba

解析MYSQL BINLOG 二进制格式(5)--WRITE_ROW_EVENT

原创:转载请说明出处谢谢! 上接 http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备工作  http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT  http://blog.itpub.net/7728585/viewspace-2133321/ 解析MY

解析MYSQL BINLOG 二进制格式(6)--UPDATE_ROW_EVENT/DELETE_ROW_EVENT

原创:转载请说明出处谢谢! 上接 http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备工作  http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT  http://blog.itpub.net/7728585/viewspace-2133321/ 解析MY