Home > Database > Mysql Tutorial > body text

解析Mysql临时表及特点_MySQL

WBOY
Release: 2016-06-01 13:24:53
Original
870 people have browsed it

bitsCN.com

临时表是当连接没有断开时存在,一旦断开就不会存在,临时表的数据和结构都在内存中,可以做个测验,你创建一个临时表,但是到响应的数据目录下并不会找到.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机数据将不存在。该表因为数据是在内存中,所以数据会很快。缺点是安全性。

bitsCN.com
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!