最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中的臨時(shí)表與內(nèi)存表

 更新時(shí)間:2024年01月31日 09:37:41   作者:pan_junbiao  
這篇文章主要介紹了MySQL中的臨時(shí)表與內(nèi)存表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在MySQL中有三種虛擬表:臨時(shí)表、內(nèi)存表、視圖。下面簡(jiǎn)單介紹一下臨時(shí)表和內(nèi)存表的使用。

1、臨時(shí)表

MySQL臨時(shí)表在我們需要保存一些臨時(shí)數(shù)據(jù)時(shí)是非常有用的。臨時(shí)表在MySQL 3.23版本中添加。

臨時(shí)表只在當(dāng)前連接可見,當(dāng)關(guān)閉連接時(shí),Mysql會(huì)自動(dòng)刪除表并釋放所有空間。

如果你使用了其他MySQL客戶端程序連接MySQL數(shù)據(jù)庫(kù)服務(wù)器來創(chuàng)建臨時(shí)表,那么只有在關(guān)閉客戶端程序時(shí)才會(huì)銷毀臨時(shí)表,當(dāng)然你也可以手動(dòng)銷毀。

1.1 創(chuàng)建臨時(shí)表

在MySQL中創(chuàng)建臨時(shí)表使用CREATE TEMPORARY TABLE語句,其語法格式如下:

CREATE TEMPORARY TABLE [IF NOT EXISTS] 臨時(shí)表名
(
	...
);

示例:

創(chuàng)建臨時(shí)表。

CREATE TEMPORARY TABLE IF NOT EXISTS temp_user
(
	id INT NOT NULL DEFAULT 0,
	name VARCHAR(10) NOT NULL
);

還可以通過復(fù)制表的方式來創(chuàng)建臨時(shí)表。

示例:

通過復(fù)制表的方式來創(chuàng)建臨時(shí)表。

CREATE TEMPORARY TABLE temp_user
AS SELECT * FROM tb_user;

1.2 刪除臨時(shí)表

默認(rèn)情況下,當(dāng)你斷開與數(shù)據(jù)庫(kù)的連接后,臨時(shí)表就會(huì)自動(dòng)被銷毀。

當(dāng)然你也可以在當(dāng)前MySQL會(huì)話中手動(dòng)刪除臨時(shí)表。

刪除臨時(shí)表與刪除普通表的語句是一樣的,使用 DROP TABLE語句。

示例:

刪除臨時(shí)表。

DROP TABLE IF EXISTS temp_user;

1.3 使用臨時(shí)表的注意事項(xiàng)

(1)臨時(shí)表只在當(dāng)前連接可見,當(dāng)這個(gè)連接關(guān)閉的時(shí)候,會(huì)自動(dòng)drop。比如打開mysql 就是一個(gè)連接會(huì)話。兩個(gè)不同的連接可以使用相同名字的臨時(shí)表,兩個(gè)表之間不存在什么關(guān)系,如果臨時(shí)表的名字和已經(jīng)存在的磁盤表名字一樣,那么臨時(shí)表會(huì)暫時(shí)覆蓋磁盤表。就是說,你select 查詢,只會(huì)顯示臨時(shí)表里面的,不會(huì)顯示磁盤表。

(2)臨時(shí)表的存儲(chǔ)引擎:memor,myisam,merge,innodb,臨時(shí)表不支持mysql cluster簇。

(3)同一個(gè)查詢語句,只能用一次臨時(shí)表,就是說不能將表和自己做連接等。

(4)重命名表,不能用rename 可以用alter table代替。

(5)如果超出了臨時(shí)表的容量,臨時(shí)表會(huì)轉(zhuǎn)換成磁盤表。

(6)show tables語句不會(huì)列出臨時(shí)表,在information_schema中也不存在臨時(shí)表信息,show create table可以查看臨時(shí)表。

2、內(nèi)存表

內(nèi)存表的表結(jié)構(gòu)建立在磁盤里面,數(shù)據(jù)放在內(nèi)存里面;

當(dāng)MySQL斷開當(dāng)前連接后,臨時(shí)表的表結(jié)構(gòu)和表數(shù)據(jù)都沒了,但內(nèi)存表的表結(jié)構(gòu)和表數(shù)據(jù)都存在;

當(dāng)MySQL服務(wù)重啟之后,內(nèi)存表的數(shù)據(jù)會(huì)丟失,但表結(jié)構(gòu)依舊存。

2.1 創(chuàng)建內(nèi)存表

創(chuàng)建內(nèi)存表與創(chuàng)建普通表一樣,使用CREATE TABLE語句,但需要將存儲(chǔ)引擎設(shè)置為:ENGINE = MEMORY。

其語法格式如下:

CREATE TABLE [IF NOT EXISTS]  內(nèi)存表名
(
	...
) ENGINE = MEMORY;

示例:

創(chuàng)建內(nèi)存表。

CREATE TABLE IF NOT EXISTS tmp_table (
	id INT NOT NULL DEFAULT 0,
	name VARCHAR(10) NOT NULL
) ENGINE = MEMORY; 

2.2 刪除內(nèi)存表

刪除內(nèi)存表與刪除普通表的語句是一樣的,使用 DROP TABLE語句。

示例:

刪除內(nèi)存表。

DROP TABLE IF EXISTS tmp_table;

2.3 使用內(nèi)存表的注意事項(xiàng)

(1)當(dāng)MySQL服務(wù)重啟之后,內(nèi)存表的數(shù)據(jù)會(huì)丟失,表結(jié)構(gòu)依舊存。

(2)多個(gè)session,創(chuàng)建表的名字不能一樣。

(3)一個(gè)session創(chuàng)建會(huì)話后,對(duì)其他session也是可見的。

(4)data目錄下只有tmp_memory.frm,表結(jié)構(gòu)放在磁盤上,數(shù)據(jù)放在內(nèi)存中。

(5)可以創(chuàng)建索引,刪除索引,支持唯一索引。

(6)不影響主備,主庫(kù)上插入的數(shù)據(jù),備庫(kù)也可以查到。

(7)show tables 語句可以查看得到表。

(8)內(nèi)存表不能包含BLOB或者TEXT列。

(9)內(nèi)存表支持AUTO_INCREMENT列。

3、臨時(shí)表與內(nèi)存表區(qū)別

臨時(shí)表內(nèi)存表
存儲(chǔ)表結(jié)構(gòu)和數(shù)據(jù)都存儲(chǔ)在內(nèi)存中表結(jié)構(gòu)存儲(chǔ)在磁盤中,表數(shù)據(jù)存儲(chǔ)在內(nèi)存中
會(huì)話單個(gè)會(huì)話獨(dú)享的,是會(huì)話級(jí)別的可以多個(gè)會(huì)話共享
引擎臨時(shí)表默認(rèn),myisam內(nèi)存表默認(rèn),memory
斷開連接表結(jié)構(gòu)和表數(shù)據(jù)都沒了表結(jié)構(gòu)和表數(shù)據(jù)都存在
服務(wù)重啟表結(jié)構(gòu)和表數(shù)據(jù)都沒了表結(jié)構(gòu)存在,表數(shù)據(jù)不存在
性能由于表數(shù)據(jù)都是存放在內(nèi)存中,所以相對(duì)來說,查詢速度較快,但是數(shù)據(jù)的維護(hù)較為困難

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 多個(gè)%等模糊查詢功能實(shí)現(xiàn)

    MySQL 多個(gè)%等模糊查詢功能實(shí)現(xiàn)

    這篇文章主要介紹了MySQL 多個(gè)%等模糊查詢功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • mysql中邏輯函數(shù)的具體使用

    mysql中邏輯函數(shù)的具體使用

    MySQL中邏輯函數(shù)包括IF、CASE、COALESCE、NULLIF和IFNULL,用于根據(jù)條件對(duì)數(shù)據(jù)進(jìn)行判斷和選擇,適用于復(fù)雜的數(shù)據(jù)處理需求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 淺析MySQL中主從延遲問題的原因與解決方法

    淺析MySQL中主從延遲問題的原因與解決方法

    這篇文章主要帶大家從一個(gè)主從延遲問題開始回顧主從復(fù)制原理,并思考主從延遲造成的原因和解決方案,文中的示例代碼講解詳細(xì),感興趣的可以了解下
    2024-02-02
  • MySQL子查詢?cè)敿?xì)教程

    MySQL子查詢?cè)敿?xì)教程

    這篇文章主要介紹了MySQL子查詢?cè)敿?xì)教程的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表

    Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表

    在Mysql的范圍分區(qū)表定義中,分區(qū)范圍需要連續(xù)并且不會(huì)有覆蓋,定義范圍分區(qū)表時(shí),使用VALUES LESS THAN操作符,這篇文章主要介紹了Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表,需要的朋友可以參考下
    2024-08-08
  • MySQL處理重復(fù)數(shù)據(jù)的各種技術(shù)和方法(預(yù)防、檢測(cè)與刪除)

    MySQL處理重復(fù)數(shù)據(jù)的各種技術(shù)和方法(預(yù)防、檢測(cè)與刪除)

    這篇文章主要介紹了MySQL中處理重復(fù)數(shù)據(jù)的技術(shù)和方法,包括重復(fù)數(shù)據(jù)的產(chǎn)生原因、影響、預(yù)防方案、刪除方案(臨時(shí)表法、直接刪除法、窗口函數(shù))以及高級(jí)應(yīng)用場(chǎng)景和性能優(yōu)化建議,需要的朋友可以參考下
    2025-11-11
  • CentOS7安裝MySQL8的超級(jí)詳細(xì)教程(無坑!)

    CentOS7安裝MySQL8的超級(jí)詳細(xì)教程(無坑!)

    我們?cè)贚inux系統(tǒng)中,如果要使用關(guān)系型數(shù)據(jù)庫(kù)的話,基本都是用的mysql,這篇文章主要給大家介紹了關(guān)于CentOS7安裝MySQL8的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • mysql 5.7.18 免安裝版window配置方法

    mysql 5.7.18 免安裝版window配置方法

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.18 免安裝版window配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • linux之MySQL的數(shù)據(jù)備份和恢復(fù)實(shí)現(xiàn)方式

    linux之MySQL的數(shù)據(jù)備份和恢復(fù)實(shí)現(xiàn)方式

    本文詳細(xì)介紹了MySQL數(shù)據(jù)備份和恢復(fù)的幾種方式,包括物理備份、邏輯備份和增量備份,以及不同的恢復(fù)方式如冷備份、溫備份和熱備份,物理備份適用于大型數(shù)據(jù)庫(kù),而邏輯備份適用于數(shù)據(jù)量較小的情況,備份工具如Xtrabackup和mysqldump各有特點(diǎn),適用于不同的業(yè)務(wù)場(chǎng)景
    2026-03-03
  • MySQL存儲(chǔ)引擎中MyISAM和InnoDB區(qū)別詳解

    MySQL存儲(chǔ)引擎中MyISAM和InnoDB區(qū)別詳解

    存儲(chǔ)引擎說白了就是如何存儲(chǔ)數(shù)據(jù)、如何為存儲(chǔ)的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法。因?yàn)樵陉P(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)的存儲(chǔ)是以表的形式存儲(chǔ)的,所以存儲(chǔ)引擎也可以稱為表類型(即存儲(chǔ)和操作此表的類型)
    2016-12-12

最新評(píng)論

安达市| 常州市| 万宁市| 崇左市| 昆山市| 淅川县| 喜德县| 甘德县| 抚顺市| 武乡县| 定襄县| 黑龙江省| 神木县| 五大连池市| 志丹县| 常山县| 江源县| 景宁| 玉树县| 昌都县| 西畴县| 海晏县| 旺苍县| 荣成市| 响水县| 安吉县| 湘西| 湄潭县| 竹山县| 汝阳县| 山阴县| 阿坝县| 尉氏县| 莎车县| 固始县| 丽水市| 专栏| 贵州省| 盘锦市| 西吉县| 东阿县|