淺談MySQL存儲引擎


MySQL 的存儲引擎是插件式的寒跳,不同的存儲引擎有不同的鎖機制较剃,其中我們最常到的兩個存儲引擎為 MyISAM 與 InnoDB缚柏。


???MyISAM 與 InnoDB的區(qū)別:


?MyISAM

    • 不支持事務,但是每次查詢都是原子的挽霉;

    • 支持表級鎖,即每次操作是對整個表加鎖变汪;????

    • 存儲表的總行數侠坎;

    • 一個 MYISAM 表有三個文件:索引文件、表結構文件裙盾、數據文件实胸;

    • 采用菲聚集索引,索引文件的數據域存儲指向數據文件的指針番官。輔索引與主索引?基本一致庐完,但是輔索引不用保證唯一性。?

????InnoDB:?

    • 支持 ACID 的事務徘熔,支持事務的四種隔離級別门躯;

    • 支持行級鎖及外鍵約束:因此可以支持寫并發(fā);

    • 不存儲總行數:一個 InnoDb 引擎存儲在一個文件空間(共享表空間酷师,表大小不受操作系統(tǒng)控制讶凉,一個表可能分布在多個文件里),也有可能為多個(設置為獨立表空窒升,表大小受操作系統(tǒng)文件大小限制缀遍,一般為 2G),受操作系統(tǒng)文件大小的限制饱须;

    • 主鍵索引采用聚集索引(索引的數據域存儲數據文件本身)域醇,輔索引的數據域存儲主鍵的值;因此從輔索引查找數據蓉媳,需要先通過輔索引找到主鍵值譬挚,再訪問輔索引;最好使用自增主鍵酪呻,防止插入數據時减宣,為維持 B+樹結構,文件的大調整玩荠。

? ??下面這個圖可能更直觀些:


MyISAM 與 InnoDB的索引實現


????????MyISAM 的索引是非聚簇索引漆腌。索引文件和數據文件是分離的贼邓,底層是B+樹作為索引結構,葉子節(jié)點data存放的是數據記錄指針的地址闷尿,這種索引結構為非聚簇索引塑径。


????????myisam中索引檢索的算法為首先按照B+Tree搜索算法搜索索引,如果指定的Key存在填具,則取出其data域的值统舀,然后以data域的值為地址,讀取相應數據記錄劳景。結構如下圖:


????????InnoDB 的索引是聚簇索引誉简。與MyISAM 的區(qū)別就是InnoDB的數據文件就是索引文件,葉子節(jié)點data存放的是數據的整條記錄盟广。這種索引結構為聚簇索引闷串。


結構如下圖:

????????因為InnoDB的數據文件本身要按主鍵聚集,所以InnoDB要求表必須有主鍵(MyISAM可以沒有)


  • 如果我們定義了主鍵(PRIMARY KEY)衡蚂,那么InnoDB會選擇其作為聚集索引窿克。

  • 如果沒有顯式指定,則MySQL系統(tǒng)會自動選擇一個可以唯一標識數據記錄的列作為主鍵

  • 如果不存在這種列毛甲,則MySQL自動為InnoDB表生成一個隱含字段作為主鍵年叮,這個字段長度為6個字節(jié),類型為長整形玻募。(隱含字段)


MyISAM 與 InnoDB的區(qū)別適用場景:


MyISAM 適合的場景為:

  • 需要頻繁執(zhí)行全表 count 語句

  • 對數據進行增刪改的頻率不高只损,查詢非常頻繁

  • 沒有事務

  • MyISAM 使用的索引是非聚簇索引

InnoDB 適合的場景為:

  • 數據增刪改查都比較頻繁

  • 可靠性要求高,需要支持事務

  • 使用聚簇索引


……………分割線……………

不積跬步七咧,無以至千里跃惫;不積小流,無以成江海艾栋。

關注我爆存,每天分享一些小知識點。分享自己的小心得蝗砾,包含但不限于初先较、中、高級面試題呦5苛浮O猩住!


我都墨跡這么半天了 扣猫,你不點關注菜循,不點贊,不收藏申尤,還不轉發(fā)癌幕,你想干啥Q酶!I自丁臭杰!


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谚中,隨后出現的幾起案子,更是在濱河造成了極大的恐慌寥枝,老刑警劉巖宪塔,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異囊拜,居然都是意外死亡某筐,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門冠跷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來南誊,“玉大人,你說我怎么就攤上這事蜜托〕簦” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵橄务,是天一觀的道長幔托。 經常有香客問我,道長蜂挪,這世上最難降的妖魔是什么重挑? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮棠涮,結果婚禮上谬哀,老公的妹妹穿的比我還像新娘。我一直安慰自己严肪,他們只是感情好史煎,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诬垂,像睡著了一般劲室。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上结窘,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天很洋,我揣著相機與錄音,去河邊找鬼隧枫。 笑死喉磁,一個胖子當著我的面吹牛谓苟,可吹牛的內容都是我干的。 我是一名探鬼主播协怒,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼涝焙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了孕暇?” 一聲冷哼從身側響起仑撞,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妖滔,沒想到半個月后隧哮,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡座舍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年沮翔,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曲秉。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡采蚀,死狀恐怖,靈堂內的尸體忽然破棺而出承二,到底是詐尸還是另有隱情榆鼠,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布矢洲,位于F島的核電站璧眠,受9級特大地震影響,放射性物質發(fā)生泄漏读虏。R本人自食惡果不足惜责静,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盖桥。 院中可真熱鬧灾螃,春花似錦、人聲如沸揩徊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塑荒。三九已至熄赡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間齿税,已是汗流浹背彼硫。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拧篮。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓词渤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親串绩。 傳聞我的和親對象是個殘疾皇子缺虐,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容