解析MySQL临时表及特点

2022-11-12 09:29:16
内容摘要
这篇文章主要为大家详细介绍了解析MySQL临时表及特点,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记! 临时表是当连接没有断开时存在,一旦
文章正文

这篇文章主要为大家详细介绍了解析MySQL临时表及特点,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

临时表是当连接没有断开时存在,一旦断开就不会存在,临时表的数据和结构都在内存中,可以做个测验,你创建一个临时表,但是到响应的数据目录下并不会找到.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_tableCreate Table: CREATE TEMPORARY TABLE `tmp_table` ( `name` varchar(10) NOT NULL, `value` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf81 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_tableCreate Table: CREATE TEMPORARY TABLE `mem_table` ( `name` varchar(10) NOT NULL, `value` int(11) NOT NULL) ENGINE=MEMORY DEFAULT CHARSET=utf81 row in set (0.00 sec)

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

注:关于解析MySQL临时表及特点的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!