下文主要給大家?guī)鞰ySQL常用存儲引擎及特點(diǎn),希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯MySQL常用存儲引擎及特點(diǎn)這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
成都創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-869222201、InnoDB存儲引擎
從MySQL5.5版本之后,MySQL的默認(rèn)內(nèi)置存儲引擎已經(jīng)是InnoDB了,他的主要特點(diǎn)有:
(1)災(zāi)難恢復(fù)性比較好;
(2)支持事務(wù)。默認(rèn)的事務(wù)隔離級別為可重復(fù)度,通過MVCC(并發(fā)版本控制)來實(shí)現(xiàn)的。
(3)使用的鎖粒度為行級鎖,可以支持更高的并發(fā);
(4)支持外鍵;
(5)配合一些熱備工具可以支持在線熱備份;
(6)在InnoDB中存在著緩沖管理,通過緩沖池,將索引和數(shù)據(jù)全部緩存起來,加快查詢的速度;
(7)對于InnoDB類型的表,其數(shù)據(jù)的物理組織形式是聚簇表。所有的數(shù)據(jù)按照主鍵來組織。數(shù)據(jù)和索引放在一塊,都位于B+數(shù)的葉子節(jié)點(diǎn)上;
2、MyISAM存儲引擎
在5.5版本之前,MyISAM是MySQL的默認(rèn)存儲引擎,該存儲引擎并發(fā)性差,不支持事務(wù),所以使用場景比較少,主要特點(diǎn)為:
(1)不支持事務(wù);
(2)不支持外鍵,如果強(qiáng)行增加外鍵,不會提示錯誤,只是外鍵不其作用;
(3)對數(shù)據(jù)的查詢緩存只會緩存索引,不會像InnoDB一樣緩存數(shù)據(jù),而且是利用操作系統(tǒng)本身的緩存;
(4)默認(rèn)的鎖粒度為表級鎖,所以并發(fā)度很差,加鎖快,鎖沖突較少,所以不太容易發(fā)生死鎖;
(5)支持全文索引(MySQL5.6之后,InnoDB存儲引擎也對全文索引做了支持),但是MySQL的全文索引基本不會使用,對于全文索引,現(xiàn)在有其他成熟的解決方案,比如:ElasticSearch,Solr,Sphinx等。
(6)數(shù)據(jù)庫所在主機(jī)如果宕機(jī),MyISAM的數(shù)據(jù)文件容易損壞,而且難恢復(fù);
3、MEMORY存儲引擎
將數(shù)據(jù)存在內(nèi)存中,和市場上的Redis,memcached等思想類似,為了提高數(shù)據(jù)的訪問速度,主要特點(diǎn):
(1)支持的數(shù)據(jù)類型有限制,比如:不支持TEXT和BLOB類型,對于字符串類型的數(shù)據(jù),只支持固定長度的行,VARCHAR會被自動存儲為CHAR類型;
(2)支持的鎖粒度為表級鎖。所以,在訪問量比較大時(shí),表級鎖會成為MEMORY存儲引擎的瓶頸;
(3)由于數(shù)據(jù)是存放在內(nèi)存中,所以在云服務(wù)器重啟之后,所有數(shù)據(jù)都會丟失;
(4)查詢的時(shí)候,如果有用到臨時(shí)表,而且臨時(shí)表中有BLOB,TEXT類型的字段,那么這個(gè)臨時(shí)表就會轉(zhuǎn)化為MyISAM類型的表,性能會急劇降低;
4、ARCHIVE存儲引擎
ARCHIVE存儲引擎適合的場景有限,由于其支持壓縮,故主要是用來做日志,流水等數(shù)據(jù)的歸檔,主要特點(diǎn):
(1)支持Zlib壓縮,數(shù)據(jù)在插入表之前,會先被壓縮;
(2)僅支持SELECT和INSERT操作,存入的數(shù)據(jù)就只能查詢,不能做修改和刪除;
(3)只支持自增鍵上的索引,不支持其他索引;
5、CSV存儲引擎
數(shù)據(jù)中轉(zhuǎn)試用,主要特點(diǎn):
(1)其數(shù)據(jù)格式為.csv格式的文本,可以直接編輯保存;
(2)導(dǎo)入導(dǎo)出比較方便,可以將某個(gè)表中的數(shù)據(jù)直接導(dǎo)出為csv,試用Excel辦公軟件打開;
1、由于鎖粒度的不同,InnoDB比MyISAM支持更高的并發(fā);
2、InnoDB為行級鎖,MyISAM為表級鎖,所以InnoDB相對于MyISAM來說,更容易發(fā)生死鎖,鎖沖突的概率更大,而且上鎖的開銷也更大,因?yàn)樾枰獮槊恳恍屑渔i;
3、在備份容災(zāi)上,InnoDB支持在線熱備,有很成熟的在線熱備解決方案;
4、查詢性能上,MyISAM的查詢效率高于InnoDB,因?yàn)镮nnoDB在查詢過程中,是需要維護(hù)數(shù)據(jù)緩存,而且查詢過程是先定位到行所在的數(shù)據(jù)塊,然后在從數(shù)據(jù)塊中定位到要查找的行;而MyISAM可以直接定位到數(shù)據(jù)所在的內(nèi)存地址,可以直接找到數(shù)據(jù);
5、SELECT COUNT(*)語句,如果行數(shù)在千萬級別以上,MyISAM可以快速查出,而InnoDB查詢的特別慢,因?yàn)镸yISAM將行數(shù)單獨(dú)存儲了,而InnoDB需要朱行去統(tǒng)計(jì)行數(shù);所以如果使用InnoDB,而且需要查詢行數(shù),則需要對行數(shù)進(jìn)行特殊處理,如:離線查詢并緩存;
6、MyISAM的表結(jié)構(gòu)文件包括:.frm(表結(jié)構(gòu)定義),.MYI(索引),.MYD(數(shù)據(jù));而InnoDB的表數(shù)據(jù)文件為:.ibd和.frm(表結(jié)構(gòu)定義);
1、使用場景是否需要事務(wù)支持;
2、是否需要支持高并發(fā),InnoDB的并發(fā)度遠(yuǎn)高于MyISAM;
3、是否需要支持外鍵;
4、是否需要支持在線熱備;
5、高效緩沖數(shù)據(jù),InnoDB對數(shù)據(jù)和索引都做了緩沖,而MyISAM只緩沖了索引;
6、索引,不同存儲引擎的索引并不太一樣;
更多MySQL相關(guān)技術(shù)文章,請?jiān)L問MySQL教程欄目進(jìn)行學(xué)習(xí)!
以上就是MySQL存儲引擎詳解的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁題目:MySQL常用存儲引擎及特點(diǎn)-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://m.rwnh.cn/article46/djooeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信小程序、網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容