欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

解析Mysql临时表及特点

时间:2021-05-05 15:36:20|栏目: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机数据将不存在。该表因为数据是在内存中,所以数据会很快。缺点是安全性。

上一篇:MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南

栏    目:Mysql

下一篇:Ubuntu下mysql安装和操作图文教程

本文标题:解析Mysql临时表及特点

本文地址:http://www.codeinn.net/misctech/115124.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有