您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“MySQL常用引擎有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“MySQL常用引擎有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
前言:
MySQL 有很多存儲(chǔ)引擎(也叫數(shù)據(jù)引擎),所謂的存儲(chǔ)引擎是指用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。也就是存儲(chǔ)引擎是數(shù)據(jù)庫(kù)的底層軟件組織。在 MySQL 中可以使用“show engines”來(lái)查詢(xún)數(shù)據(jù)庫(kù)的所有存儲(chǔ)引擎,
如下圖所示:
在上述列表中,我們最常用的存儲(chǔ)引擎有以下 3 種:
InnoDB
MyISAM
MEMORY
下面我們分別來(lái)看看具體分析。
InnoDB 是 MySQL 5.1 之后默認(rèn)的存儲(chǔ)引擎,它支持事務(wù)、支持外鍵、支持崩潰修復(fù)和自增列。如果對(duì)業(yè)務(wù)的完整性要求較高,比如張三給李四轉(zhuǎn)賬,需要減張三的錢(qián),同時(shí)給李四加錢(qián),這時(shí)候只能全部執(zhí)行成功或全部執(zhí)行失敗,此時(shí)可以通過(guò) InnoDB 來(lái)控制事務(wù)的提交和回滾,從而保證業(yè)務(wù)的完整性。
InnoDB 的優(yōu)勢(shì)是支持事務(wù)、支持外鍵、支持崩潰修復(fù)和自增列;它的缺點(diǎn)是讀寫(xiě)效率較差、占用的數(shù)據(jù)空間較大。
MyISAM 是 MySQL 5.1 之前默認(rèn)的數(shù)據(jù)庫(kù)引擎,讀取效率較高,占用數(shù)據(jù)空間較少,但不支持事務(wù)、不支持行級(jí)鎖、不支持外鍵等特性。因?yàn)椴恢С中屑?jí)鎖,因此在添加和修改操作時(shí),會(huì)執(zhí)行鎖表操作,所以它的寫(xiě)入效率較低。
MyISAM 引擎保存了單獨(dú)的索引文件 .myi,且它的索引是直接定位到 OFFSET 的,而 InnoDB 沒(méi)有單獨(dú)的物理索引存儲(chǔ)文件,且 InnoDB 索引尋址是先定位到塊數(shù)據(jù),再定位到行數(shù)據(jù),所以 MyISAM 的查詢(xún)效率是比 InnoDB 的查詢(xún)效率要高。但它不支持事務(wù)、不支持外鍵,所以它的適用場(chǎng)景是讀多寫(xiě)少,且對(duì)完整性要求不高的業(yè)務(wù)場(chǎng)景。
內(nèi)存型數(shù)據(jù)庫(kù)引擎,所有的數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,因此它的讀寫(xiě)效率很高,但 MySQL 服務(wù)重啟之后數(shù)據(jù)會(huì)丟失。它同樣不支持事務(wù)、不支持外鍵。MEMORY 支持 Hash 索引或 B 樹(shù)索引,其中 Hash 索引是基于 key 查詢(xún)的,因此查詢(xún)效率特別高,但如果是基于范圍查詢(xún)的效率就比較低了。而前面兩種存儲(chǔ)引擎是基于 B+ 樹(shù)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)了。
MEMORY 讀寫(xiě)性能很高,但 MySQL 服務(wù)重啟之后數(shù)據(jù)會(huì)丟失,它不支持事務(wù)和外鍵。適用場(chǎng)景是讀寫(xiě)效率要求高,但對(duì)數(shù)據(jù)丟失不敏感的業(yè)務(wù)場(chǎng)景。
存儲(chǔ)引擎的設(shè)置粒度是表級(jí)別的,也就是每張表可以設(shè)置不同的存儲(chǔ)引擎,我們可以使用以下命令來(lái)查詢(xún)某張表的存儲(chǔ)引擎:
show create table t;
如下圖所示:
在創(chuàng)建一張表的時(shí)候設(shè)置存儲(chǔ)引擎:
修改一張已經(jīng)存在表的存儲(chǔ)引擎:
讀到這里,這篇“MySQL常用引擎有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。