MySQL系列(二)----MySQL存儲引擎詳解

一桥状、MySQL常用存儲引擎及特點

1帽揪、InnoDB存儲引擎

從MySQL5.5版本之后,MySQL的默認內(nèi)置存儲引擎已經(jīng)是InnoDB了辅斟,他的主要特點有:

(1)災(zāi)難恢復(fù)性比較好转晰;

(2)支持事務(wù)。默認的事務(wù)隔離級別為可重復(fù)度士飒,通過MVCC(并發(fā)版本控制)來實現(xiàn)的查邢。

(3)使用的鎖粒度為行級鎖,可以支持更高的并發(fā)酵幕;

(4)支持外鍵侠坎;

(5)配合一些熱備工具可以支持在線熱備份;

(6)在InnoDB中存在著緩沖管理裙盾,通過緩沖池实胸,將索引和數(shù)據(jù)全部緩存起來,加快查詢的速度番官;

(7)對于InnoDB類型的表庐完,其數(shù)據(jù)的物理組織形式是聚簇表。所有的數(shù)據(jù)按照主鍵來組織徘熔。數(shù)據(jù)和索引放在一塊门躯,都位于B+數(shù)的葉子節(jié)點上;

2酷师、MyISAM存儲引擎

在5.5版本之前讶凉,MyISAM是MySQL的默認存儲引擎,該存儲引擎并發(fā)性差山孔,不支持事務(wù)懂讯,所以使用場景比較少,主要特點為:

(1)不支持事務(wù)台颠;

(2)不支持外鍵褐望,如果強行增加外鍵,不會提示錯誤,只是外鍵不其作用瘫里;

(3)對數(shù)據(jù)的查詢緩存只會緩存索引实蔽,不會像InnoDB一樣緩存數(shù)據(jù),而且是利用操作系統(tǒng)本身的緩存谨读;

(4)默認的鎖粒度為表級鎖局装,所以并發(fā)度很差,加鎖快劳殖,鎖沖突較少铐尚,所以不太容易發(fā)生死鎖;

(5)支持全文索引(MySQL5.6之后闷尿,InnoDB存儲引擎也對全文索引做了支持)塑径,但是MySQL的全文索引基本不會使用女坑,對于全文索引填具,現(xiàn)在有其他成熟的解決方案,比如:ElasticSearch匆骗,Solr劳景,Sphinx等。

(6)數(shù)據(jù)庫所在主機如果宕機碉就,MyISAM的數(shù)據(jù)文件容易損壞盟广,而且難恢復(fù);

3瓮钥、MEMORY存儲引擎

將數(shù)據(jù)存在內(nèi)存中筋量,和市場上的Redis,memcached等思想類似碉熄,為了提高數(shù)據(jù)的訪問速度桨武,主要特點:

(1)支持的數(shù)據(jù)類型有限制,比如:不支持TEXT和BLOB類型锈津,對于字符串類型的數(shù)據(jù)呀酸,只支持固定長度的行,VARCHAR會被自動存儲為CHAR類型琼梆;

(2)支持的鎖粒度為表級鎖性誉。所以,在訪問量比較大時茎杂,表級鎖會成為MEMORY存儲引擎的瓶頸错览;

(3)由于數(shù)據(jù)是存放在內(nèi)存中,所以在服務(wù)器重啟之后煌往,所有數(shù)據(jù)都會丟失蝗砾;

(4)查詢的時候,如果有用到臨時表,而且臨時表中有BLOB悼粮,TEXT類型的字段闲勺,那么這個臨時表就會轉(zhuǎn)化為MyISAM類型的表,性能會急劇降低扣猫;

4菜循、ARCHIVE存儲引擎

ARCHIVE存儲引擎適合的場景有限,由于其支持壓縮申尤,故主要是用來做日志癌幕,流水等數(shù)據(jù)的歸檔,主要特點:

(1)支持Zlib壓縮昧穿,數(shù)據(jù)在插入表之前勺远,會先被壓縮;

(2)僅支持SELECT和INSERT操作时鸵,存入的數(shù)據(jù)就只能查詢胶逢,不能做修改和刪除;

(3)只支持自增鍵上的索引饰潜,不支持其他索引初坠;

5、CSV存儲引擎

數(shù)據(jù)中轉(zhuǎn)試用彭雾,主要特點:

(1)其數(shù)據(jù)格式為.csv格式的文本碟刺,可以直接編輯保存;

(2)導(dǎo)入導(dǎo)出比較方便薯酝,可以將某個表中的數(shù)據(jù)直接導(dǎo)出為csv半沽,試用Excel辦公軟件打開;

二吴菠、InnoDB和MyISAM的對比

1者填、由于鎖粒度的不同,InnoDB比MyISAM支持更高的并發(fā)橄务;

2幔托、InnoDB為行級鎖,MyISAM為表級鎖蜂挪,所以InnoDB相對于MyISAM來說重挑,更容易發(fā)生死鎖,鎖沖突的概率更大棠涮,而且上鎖的開銷也更大谬哀,因為需要為每一行加鎖;

3严肪、在備份容災(zāi)上史煎,InnoDB支持在線熱備谦屑,有很成熟的在線熱備解決方案;

4篇梭、查詢性能上氢橙,MyISAM的查詢效率高于InnoDB,因為InnoDB在查詢過程中恬偷,是需要維護數(shù)據(jù)緩存悍手,而且查詢過程是先定位到行所在的數(shù)據(jù)塊,然后在從數(shù)據(jù)塊中定位到要查找的行袍患;而MyISAM可以直接定位到數(shù)據(jù)所在的內(nèi)存地址坦康,可以直接找到數(shù)據(jù);

5诡延、SELECT COUNT(*)語句滞欠,如果行數(shù)在千萬級別以上,MyISAM可以快速查出肆良,而InnoDB查詢的特別慢筛璧,因為MyISAM將行數(shù)單獨存儲了,而InnoDB需要朱行去統(tǒng)計行數(shù)妖滔;所以如果使用InnoDB隧哮,而且需要查詢行數(shù)桶良,則需要對行數(shù)進行特殊處理座舍,如:離線查詢并緩存;

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ā)度遠高于MyISAM;

3识啦、是否需要支持外鍵负蚊;

4、是否需要支持在線熱備颓哮;

5家妆、高效緩沖數(shù)據(jù),InnoDB對數(shù)據(jù)和索引都做了緩沖冕茅,而MyISAM只緩沖了索引伤极;

6蛹找、索引,不同存儲引擎的索引并不太一樣哨坪;

引用(本文章只供本人學(xué)習(xí)以及學(xué)習(xí)的記錄庸疾,如有侵權(quán),請聯(lián)系我刪除)

MySQL存儲引擎詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末当编,一起剝皮案震驚了整個濱河市彼硫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凌箕,老刑警劉巖拧篮,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異牵舱,居然都是意外死亡串绩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門芜壁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來礁凡,“玉大人,你說我怎么就攤上這事慧妄∏昱疲” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵塞淹,是天一觀的道長窟蓝。 經(jīng)常有香客問我,道長饱普,這世上最難降的妖魔是什么运挫? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮套耕,結(jié)果婚禮上谁帕,老公的妹妹穿的比我還像新娘。我一直安慰自己冯袍,他們只是感情好匈挖,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著康愤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翘瓮。 梳的紋絲不亂的頭發(fā)上贮折,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天资盅,我揣著相機與錄音调榄,去河邊找鬼。 笑死每庆,一個胖子當著我的面吹牛筐带,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缤灵,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼伦籍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腮出?” 一聲冷哼從身側(cè)響起帖鸦,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胚嘲,失蹤者是張志新(化名)和其女友劉穎作儿,沒想到半個月后馋劈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攻锰,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年妓雾,在試婚紗的時候發(fā)現(xiàn)自己被綠了娶吞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡械姻,死狀恐怖妒蛇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情策添,我是刑警寧澤材部,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布唯竹,位于F島的核電站,受9級特大地震影響浸颓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旺拉,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛾狗。 院中可真熱鬧晋涣,春花似錦沉桌、人聲如沸谢鹊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偎巢。三九已至,卻和暖如春压昼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘤运。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拯坟,地道東北人官撼。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓似谁,卻偏偏與公主長得像傲绣,于是被迫代替她去往敵國和親巩踏。 傳聞我的和親對象是個殘疾皇子秃诵,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容