Mysql臨時表特性 解析Mysql臨時表及特點

2021-10-17 13:50:12 字數 1371 閱讀 3619

臨時表是當連線沒有斷開時存在,一旦斷開就不會存在,臨時表的資料和結構都在記憶體中,可以做個測驗,你建立乙個臨時表,但是到響應的資料目錄下並不會找到.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臨時表更新 MySql 臨時表

今天在專案中遇到乙個,當mysql的in語句中資料量很大時,建立乙個臨時表的例子。於是樓主整理了一下關於臨時表的知識,與大家分享一下 首先,臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。因此在不同的連線中可以建立同名的臨時表,並且操作屬於本連線的臨時表。建立臨時表 cr...

mysql 臨時表 限制 Mysql臨時表

當你建立臨時表的時候,你可以使用temporary關鍵字。如 create temporary table tmp table name varchar 10 not null,passwd char 6 not null 或create temporary table if not exists ...

mysql怎麼是臨時表 MySQL臨時表

在本教程中,我們將討論mysql臨時表,並演示如何建立,使用和刪除臨時表。mysql臨時表簡介 在mysql中,臨時表是一種特殊型別的表,它允許您儲存乙個臨時結果集,可以在單個會話中多次重用。當使用join子句查詢需要單個select語句的資料是不可能或遇到瓶頸的時候,臨時表非常方便。在這種情況下,...