日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
面試突擊:MySQL常用引擎有哪些?

MySQL 有很多存儲(chǔ)引擎(也叫數(shù)據(jù)引擎),所謂的存儲(chǔ)引擎是指用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。也就是存儲(chǔ)引擎是數(shù)據(jù)庫(kù)的底層軟件組織。在 MySQL 中可以使用“show engines”來(lái)查詢數(shù)據(jù)庫(kù)的所有存儲(chǔ)引擎,如下圖所示:

創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十余年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都廣告設(shè)計(jì)等企業(yè),備受客戶稱揚(yáng)。

在上述列表中,我們最常用的存儲(chǔ)引擎有以下 3 種:

  • InnoDB
  • MyISAM
  • MEMORY

下面我們分別來(lái)看。

1.InnoDB

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ù)的完整性。

優(yōu)缺點(diǎn)分析

InnoDB 的優(yōu)勢(shì)是支持事務(wù)、支持外鍵、支持崩潰修復(fù)和自增列;它的缺點(diǎn)是讀寫(xiě)效率較差、占用的數(shù)據(jù)空間較大。

2.MyISAM

MyISAM 是 MySQL 5.1 之前默認(rèn)的數(shù)據(jù)庫(kù)引擎,讀取效率較高,占用數(shù)據(jù)空間較少,但不支持事務(wù)、不支持行級(jí)鎖、不支持外鍵等特性。因?yàn)椴恢С中屑?jí)鎖,因此在添加和修改操作時(shí),會(huì)執(zhí)行鎖表操作,所以它的寫(xiě)入效率較低。

優(yōu)缺點(diǎn)分析

MyISAM 引擎保存了單獨(dú)的索引文件 .myi,且它的索引是直接定位到 OFFSET 的,而 InnoDB 沒(méi)有單獨(dú)的物理索引存儲(chǔ)文件,且 InnoDB 索引尋址是先定位到塊數(shù)據(jù),再定位到行數(shù)據(jù),所以 MyISAM 的查詢效率是比 InnoDB 的查詢效率要高。但它不支持事務(wù)、不支持外鍵,所以它的適用場(chǎng)景是讀多寫(xiě)少,且對(duì)完整性要求不高的業(yè)務(wù)場(chǎng)景。

3.MEMORY

內(nèi)存型數(shù)據(jù)庫(kù)引擎,所有的數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,因此它的讀寫(xiě)效率很高,但 MySQL 服務(wù)重啟之后數(shù)據(jù)會(huì)丟失。它同樣不支持事務(wù)、不支持外鍵。MEMORY 支持 Hash 索引或 B 樹(shù)索引,其中 Hash 索引是基于 key 查詢的,因此查詢效率特別高,但如果是基于范圍查詢的效率就比較低了。而前面兩種存儲(chǔ)引擎是基于 B+ 樹(shù)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)了。

優(yōu)缺點(diǎn)分析

MEMORY 讀寫(xiě)性能很高,但 MySQL 服務(wù)重啟之后數(shù)據(jù)會(huì)丟失,它不支持事務(wù)和外鍵。適用場(chǎng)景是讀寫(xiě)效率要求高,但對(duì)數(shù)據(jù)丟失不敏感的業(yè)務(wù)場(chǎng)景。

4.查看和設(shè)置存儲(chǔ)引擎

4.1 查看存儲(chǔ)引擎

存儲(chǔ)引擎的設(shè)置粒度是表級(jí)別的,也就是每張表可以設(shè)置不同的存儲(chǔ)引擎,我們可以使用以下命令來(lái)查詢某張表的存儲(chǔ)引擎:

如下圖所示:

4.2 設(shè)置存儲(chǔ)引擎

在創(chuàng)建一張表的時(shí)候設(shè)置存儲(chǔ)引擎:

修改一張已經(jīng)存在表的存儲(chǔ)引擎:

總結(jié)

MySQL 中最常見(jiàn)的存儲(chǔ)引擎有:InnoDB、MyISAM 和 MEMORY,其中 InnoDB 是 MySQL 5.1 之后默認(rèn)的存儲(chǔ)引擎,它支持事務(wù)、支持外鍵、支持崩潰修復(fù)和自增列,它的特點(diǎn)是穩(wěn)定(能保證業(yè)務(wù)的完整性),但數(shù)據(jù)的讀寫(xiě)效率一般;而 MyISAM 的查詢效率較高,但不支持事務(wù)和外鍵;MEMORY 的讀寫(xiě)效率最高,但因?yàn)閿?shù)據(jù)都保存在內(nèi)存中的,所以 MySQL 服務(wù)重啟之后數(shù)據(jù)就會(huì)丟失,因此它只適用于數(shù)據(jù)丟失不敏感的業(yè)務(wù)場(chǎng)景。


新聞標(biāo)題:面試突擊:MySQL常用引擎有哪些?
網(wǎng)頁(yè)地址:http://www.5511xx.com/article/dhiihhg.html