臨時(shí)表是當(dāng)連接沒有斷開時(shí)存在,一旦斷開就不會(huì)存在,臨時(shí)表的數(shù)據(jù)和結(jié)構(gòu)都在內(nèi)存中,可以做個(gè)測(cè)驗(yàn),你創(chuàng)建一個(gè)臨時(shí)表,但是到響應(yīng)的數(shù)據(jù)目錄下并不會(huì)找到.frm文件
mysql> CREATE TEMPORARY TABLE tmp_table (
->
-> name VARCHAR(10) NOT NULL,
-> value INTEGER NOT NULL
->
-> ) ;
Query OK, 0 rows affected (0.38 sec)
查看表狀態(tài)
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)
它和正常表沒有什么區(qū)別,但是數(shù)據(jù)是存在內(nèi)存中的,你在響應(yīng)的數(shù)據(jù)目錄下找不到數(shù)據(jù)文件。
一旦斷開連接你再查該表就會(huì)消失。
和臨時(shí)表有點(diǎn)相似的是內(nèi)存表,有的也稱堆表。
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)
查看表狀態(tài)
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)
你在數(shù)據(jù)目錄下回發(fā)現(xiàn)一個(gè)mem_table.frm文件,所以內(nèi)存表的數(shù)據(jù)是放在磁盤上的,但是插入數(shù)據(jù)后發(fā)現(xiàn)磁盤上沒有數(shù)據(jù)文件,所以數(shù)據(jù)是在內(nèi)存中的,因?yàn)椴捎玫氖莔emory 引擎。一旦down機(jī)數(shù)據(jù)將不存在。該表因?yàn)閿?shù)據(jù)是在內(nèi)存中,所以數(shù)據(jù)會(huì)很快。缺點(diǎn)是安全性。
|
新聞熱點(diǎn)
疑難解答
圖片精選