国产精在线-国产精欧美一区二区三区-国产精视频-国产精品 日韩-一级黄色片在线看-一级黄色片在线播放

MySQL多種索引引擎詳解

與其他數(shù)據(jù)庫(kù)例如Oracle 和SQL Server等數(shù)據(jù)庫(kù)中只有一種存儲(chǔ)引擎不同的是,MySQL有一個(gè)被稱為“Pluggable Storage Engine Architecture”(可替換存儲(chǔ)引擎架構(gòu))的特性,也就意味著MySQL數(shù)據(jù)庫(kù)提供了多種存儲(chǔ)引擎。用戶可以根據(jù)不同的需求為數(shù)據(jù)表選擇不同的存儲(chǔ)引擎,用戶也可以根據(jù)自己的需要編寫自己的存儲(chǔ)引擎。MySQL數(shù)據(jù)庫(kù)在實(shí)際的工作中其實(shí)分為了語句分析層和存儲(chǔ)引擎層,其中語句分析層就主要負(fù)責(zé)與客戶端完成連接并且事先分析出SQL語句的內(nèi)容和功能,而存儲(chǔ)引擎層則主要負(fù)責(zé)接收來自語句分析層的分析結(jié)果,完成相應(yīng)的數(shù)據(jù)輸入輸出和文件操作。簡(jiǎn)而言之,就是如何存儲(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ǔ)和操作此表的類型)。

存儲(chǔ)引擎種類

存儲(chǔ)引擎 說明
MyISAM 高速引擎,擁有較高的插入,查詢速度,但不支持事務(wù)
InnoDB 5.5版本后MySQL的默認(rèn)數(shù)據(jù)庫(kù),支持事務(wù)和行級(jí)鎖定,比MyISAM處理速度稍慢
ISAM MyISAM的前身,MySQL5.0以后不再默認(rèn)安裝
MRG_MyISAM(MERGE) 將多個(gè)表聯(lián)合成一個(gè)表使用,在超大規(guī)模數(shù)據(jù)存儲(chǔ)時(shí)很有用
Memory 內(nèi)存存儲(chǔ)引擎,擁有極高的插入,更新和查詢效率。但是會(huì)占用和數(shù)據(jù)量成正比的內(nèi)存空間。只在內(nèi)存上保存數(shù)據(jù),意味著數(shù)據(jù)可能會(huì)丟失
Falcon 一種新的存儲(chǔ)引擎,支持事物處理,傳言可能是InnoDB的替代者
Archive 將數(shù)據(jù)壓縮后進(jìn)行存儲(chǔ),非常適合存儲(chǔ)大量的獨(dú)立的,作為歷史記錄的數(shù)據(jù),但是只能進(jìn)行插入和查詢操作
CSV CSV 存儲(chǔ)引擎是基于 CSV 格式文件存儲(chǔ)數(shù)據(jù)(應(yīng)用于跨平臺(tái)的數(shù)據(jù)交換)

接下來我們就介紹兩種在實(shí)際開發(fā)中使用最多的兩種引擎【MyISAM】和【InnoDB】。

MyISAM 引擎

這種引擎是MySQL最早提供的。這種引擎又可以分為靜態(tài)MyISAM、動(dòng)態(tài)MyISAM 和壓縮MyISAM三種:

靜態(tài)MyISAM:如果數(shù)據(jù)表中的各數(shù)據(jù)列的長(zhǎng)度都是預(yù)先固定好的,服務(wù)器將自動(dòng)選擇這種表類型。因?yàn)?數(shù)據(jù)表中每一條記錄所占用的空間都是一樣的,所以這種表存取和更新的效率非常高。當(dāng)數(shù)據(jù)受損時(shí),恢復(fù)工作也比較容易做。

動(dòng)態(tài)MyISAM:如果數(shù)據(jù)表中出現(xiàn)varchar、xxxtext或xxxBLOB字段時(shí),服務(wù)器將自動(dòng)選擇這種表類型。相對(duì)于靜態(tài)MyISAM,這種表存儲(chǔ)空間比較小,但由于每條記錄的長(zhǎng)度不一,所以多次修改數(shù)據(jù)后,數(shù)據(jù)表中的數(shù)據(jù)就可能離散的存儲(chǔ)在內(nèi)存中,進(jìn)而導(dǎo)致執(zhí)行效率下降。同時(shí),內(nèi)存中也可能會(huì)出現(xiàn)很多碎片。因此,這種類型的表要經(jīng)常用optimize table 命令或優(yōu)化工具來進(jìn)行碎片整理。

壓縮MyISAM:以上說到的兩種類型的表都可以用myisamchk工具壓縮。這種類型的表進(jìn)一步減小了占用的存儲(chǔ),但是這種表壓縮之后不能再被修改。另外,因?yàn)槭菈嚎s數(shù)據(jù),所以這種表在讀取的時(shí)候要先時(shí)行解壓縮。

當(dāng)然不管是何種MyISAM表,目前它都不支持事務(wù),行級(jí)鎖和外鍵約束的功能,這就意味著有事務(wù)處理需求的表,不能使用MyISAM存儲(chǔ)引擎。MyISAM存儲(chǔ)引擎特別適合在以下幾種情況下使用:

選擇密集型的表。MyISAM存儲(chǔ)引擎在篩選大量數(shù)據(jù)時(shí)非常迅速,這是它最突出的優(yōu)點(diǎn)。

插入密集型的表。MyISAM的并發(fā)插入特性允許同時(shí)選擇和插入數(shù)據(jù)。

MyISAM表是獨(dú)立于操作系統(tǒng)的,這說明可以輕松地將其從Windows服務(wù)器移植到Linux服務(wù)器;每當(dāng)我們建立一個(gè)MyISAM引擎的表時(shí),就會(huì)在本地磁盤上建立三個(gè)文件,文件名就是表名。 例如我創(chuàng)建了一個(gè)【test】表,那么就會(huì)生成以下三個(gè)文件:

文件名 說明
test.frm 存儲(chǔ)表定義
test.MYD 存儲(chǔ)數(shù)據(jù)
test.MYI 存儲(chǔ)索引

InnoDB引擎

InnoDB表類型可以看作是對(duì)MyISAM的進(jìn)一步更新產(chǎn)品,它提供了事務(wù)、行級(jí)鎖機(jī)制和外鍵約束的功能。InnoDB的表需要更多的內(nèi)存和存儲(chǔ),它會(huì)在主內(nèi)存中建立其專用的緩沖池用于高速緩沖數(shù)據(jù)和索引。 使用InnoDB是最理想的選擇:

更新密集的表:InnoDB存儲(chǔ)引擎特別適合處理多重并發(fā)的更新請(qǐng)求

事務(wù):InnoDB存儲(chǔ)引擎是支持事務(wù)的標(biāo)準(zhǔn)MySQL存儲(chǔ)引擎

自動(dòng)災(zāi)難恢復(fù):與其它存儲(chǔ)引擎不同,InnoDB表能夠自動(dòng)從災(zāi)難中恢復(fù)

外鍵約束:MySQL支持外鍵的存儲(chǔ)引擎只有InnoDB

支持自動(dòng)增加列AUTO_INCREMENT屬性

5. 總結(jié)
InnoDB:支持事務(wù)處理,支持外鍵,支持崩潰修復(fù)能力和并發(fā)控制。如果需要對(duì)事務(wù)的完整性要求比較高(比如銀行),要求實(shí)現(xiàn)并發(fā)控制(比如售票),那選擇InnoDB有很大的優(yōu)勢(shì)。如果需要頻繁的更新、刪除操作的數(shù)據(jù)庫(kù),也可以選擇InnoDB,因?yàn)橹С质聞?wù)的提交(commit)和回滾(rollback)。

MyISAM:插入數(shù)據(jù)快,空間和內(nèi)存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM能實(shí)現(xiàn)處理高效率。如果應(yīng)用的完整性、并發(fā)性要求比較低,也可以使用。

注意,同一個(gè)數(shù)據(jù)庫(kù)也可以使用多種存儲(chǔ)引擎的表。如果一個(gè)表要求比較高的事務(wù)處理,可以選擇InnoDB。這個(gè)數(shù)據(jù)庫(kù)中可以將查詢要求比較高的表選擇MyISAM存儲(chǔ)。如果該數(shù)據(jù)庫(kù)需要一個(gè)用于查詢的臨時(shí)表,可以選擇MEMORY存儲(chǔ)引擎。

THE END
主站蜘蛛池模板: 国产偷怕| 国产亚洲一区二区三区不卡 | 日韩免费观看的一级毛片 | 日韩精品亚洲人成在线观看 | 国产综合在线观看视频 | 免费观看一级成人毛片软件 | 99视频在线观看免费视频 | 中文字幕有码视频 | 一级国产a级a毛片无卡 | 中文字幕乱码系列免费 | 久色国产| 91亚洲人成手机在线观看 | 国产成人午夜精品影院游乐网 | 亚洲一级毛片免费在线观看 | 一级特级欧美a毛片免费 | 免费aⅴ片| 国产精品免费观看视频播放 | 国产欧美一区二区三区观看 | 国产a久久精品一区二区三区 | 久草视频首页 | 欧美日韩无| 禁止18周岁进入免费网站观看 | 亚洲成人免费在线观看 | 日本色综合网 | 大美女香蕉丽人视频网站 | 亚洲黄色在线播放 | 欧美性69| 国产专区一va亚洲v天堂 | 美女黄频免费观看 | 欧美性色xo在线 | 韩国三级日本三级香港三级黄 | 嫩草影院ncyy在线观看 | 免费人成网站 | 91aaa免费免费国产在线观看 | 国产成人高清精品免费软件 | 亚洲精品国产精品国自产网站 | 国内精品久久久久影院不卡 | 欧美国产精品不卡在线观看 | 99青青| 日韩不卡在线 | a级成人毛片免费视频高清 a级高清观看视频在线看 |