1-MySQL體系結(jié)構(gòu)和存儲引擎

1.定義數(shù)據(jù)庫和實例

兩個概念:

數(shù)據(jù)庫(database):物理操作系統(tǒng)文件或其他形式文件類型的集合穿挨。在MySQL數(shù)據(jù)庫中焰络,數(shù)據(jù)庫文件可以是frm、MYD舍败、MYI、ibd結(jié)尾的文件碗硬。當(dāng)使用NDB引擎時瓤湘,數(shù)據(jù)庫的文件可能不是操作系統(tǒng)上的文件,而是存放于內(nèi)存之中的文件恩尾,但是定義仍然不變弛说。

實例(instance):MySQL數(shù)據(jù)庫由后臺線程以及一個共享內(nèi)存區(qū)組成。共享內(nèi)存可以被運行的后臺線程所共享翰意。需要牢記的是木人,數(shù)據(jù)庫實例才是真正用于操作數(shù)據(jù)庫文件的。

在MySQL數(shù)據(jù)庫中冀偶,實例與數(shù)據(jù)庫的關(guān)系通常是一一對應(yīng)的醒第,即一個實例對應(yīng)一個數(shù)據(jù)庫。但是在集群情況下可能存在一個數(shù)據(jù)庫被多個數(shù)據(jù)實例使用的情況进鸠。

MySQL數(shù)據(jù)庫實例在系統(tǒng)上的表現(xiàn)就是一個進程稠曼。

解釋:

OLTP:在線事務(wù)處理

MVCC:多版本并發(fā)控制

2.MySQL體系結(jié)構(gòu)

MySQL由以下幾個部分組成:

  • 連接池組件

  • 管理服務(wù)和工具組件

  • SQL接口組件

  • 查詢分析器組件

  • 優(yōu)化器組件

  • 緩沖組件

  • 插件式存儲引擎

  • 物理文件

需要特別注意的是,存儲引擎是基于表的客年,而不是數(shù)據(jù)庫霞幅。

3.MySQL存儲引擎

  • InnoDB存儲引擎

    支持事務(wù),行鎖設(shè)計、支持外鍵,支持非鎖定讀嫂丙。通過使用多版本并發(fā)控制來獲得高并發(fā)性,實現(xiàn)了4中隔離級別扔傅,默認為REPEATABLE級別。同時,使用一種被稱為next key locking的策略來避免幻讀現(xiàn)象的產(chǎn)生猎塞。還提供了插入緩沖试读、二次寫、自適應(yīng)哈希索引邢享、預(yù)讀等高性能和高可用的功能鹏往。

    對于表中數(shù)據(jù)的存儲,InnoDB存儲引擎采用了聚集的方式骇塘,因此每張表的存儲都是按主鍵的順序進行存放伊履。如果沒有顯示地在表定義時指定主鍵,InnoDB存儲引擎會為每一行生成一個6字節(jié)的ROWID款违,并以此作為主鍵唐瀑。

  • MyISAM存儲引擎

    不支持事務(wù)、表鎖設(shè)計插爹,支持全文索引哄辣,主要面向一些OLAP數(shù)據(jù)庫應(yīng)用。緩沖池只緩存索引文件赠尾,而不緩沖數(shù)據(jù)文件力穗。表由MYD和MYI組成,MYD用來存放數(shù)據(jù)文件气嫁,MYI用來存放索引文件当窗。可以通過使用myisam pack工具進一步壓縮寸宵,壓縮后的表是制度的崖面,但可以通過myisampack來解壓數(shù)據(jù)文件。5.0開始梯影,默認支持256TB的單表數(shù)據(jù)巫员。

  • NDB存儲引擎

    是一個集群存儲引擎,類似于Oracle的RAC集群甲棍。數(shù)據(jù)全部放在內(nèi)存中(5.1開始简识,可以將非索引數(shù)據(jù)放在磁盤上),因此主鍵查找速度極快感猛。NDB存儲引擎的連接操作(JOIN)是在MySQL數(shù)據(jù)庫層完成的七扰,而不是在存儲引擎層完成的。這意味著唱遭,復(fù)雜的連接操作需要巨大的網(wǎng)絡(luò)開銷戳寸,因此查詢速度很慢呈驶。

  • Memory存儲引擎

    之前稱為HEAP存儲引擎拷泽。只支持表鎖,并發(fā)性能查,不支持TEXT和BLOB列類型司致。將表中的數(shù)據(jù)存放在內(nèi)存中拆吆,如果數(shù)據(jù)庫重啟或發(fā)生崩潰,表中的數(shù)據(jù)都將消失脂矫。它非常適用于存儲臨時數(shù)據(jù)的臨時表枣耀,以及數(shù)據(jù)倉庫中的緯度表。默認使用哈希索引庭再,而不是我們熟悉的B+樹索引捞奕。

  • Archive存儲引擎

    只支持INSERT和SELECT操作,從5.1開始支持索引拄轻。使用zlib算法將數(shù)據(jù)行進行壓縮后存儲颅围,壓縮比一般可達1:10。非常適合存儲歸檔數(shù)據(jù)恨搓,如日志信息院促。

  • Federated存儲引擎

    表不存放數(shù)據(jù),只是指向一臺遠程MySQL數(shù)據(jù)庫服務(wù)器上的表斧抱。

  • Maria存儲引擎

    新開發(fā)的引擎常拓,設(shè)計目標是取代MyISAM存儲引擎。支持緩存數(shù)據(jù)和索引文件辉浦,應(yīng)用了行鎖設(shè)計弄抬,提供了MVCC功能,支持事務(wù)和非事務(wù)安全的選項盏浙。

  • 其他存儲引擎

    包括Merge眉睹、CSV、Sphinx废膘、Infobright竹海。

4.各存儲引擎之間的比較

下圖取自MySQL官方手冊,展現(xiàn)了一些常用MySQL存儲引擎之間的不同之處丐黄,包括存儲容量的限制斋配、事務(wù)支持、鎖的粒度灌闺、MVCC支持艰争、支持的索引、備份和復(fù)制等桂对。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末甩卓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蕉斜,更是在濱河造成了極大的恐慌逾柿,老刑警劉巖缀棍,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異机错,居然都是意外死亡爬范,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門弱匪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來青瀑,“玉大人,你說我怎么就攤上這事萧诫〕饽眩” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵帘饶,是天一觀的道長蘸炸。 經(jīng)常有香客問我,道長尖奔,這世上最難降的妖魔是什么搭儒? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮提茁,結(jié)果婚禮上淹禾,老公的妹妹穿的比我還像新娘。我一直安慰自己茴扁,他們只是感情好铃岔,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著峭火,像睡著了一般毁习。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卖丸,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天纺且,我揣著相機與錄音,去河邊找鬼稍浆。 笑死载碌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衅枫。 我是一名探鬼主播嫁艇,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弦撩!你這毒婦竟也來了步咪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤益楼,失蹤者是張志新(化名)和其女友劉穎猾漫,沒想到半個月后纯丸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡静袖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俊扭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片队橙。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萨惑,靈堂內(nèi)的尸體忽然破棺而出捐康,到底是詐尸還是另有隱情,我是刑警寧澤庸蔼,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布解总,位于F島的核電站,受9級特大地震影響姐仅,放射性物質(zhì)發(fā)生泄漏花枫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一掏膏、第九天 我趴在偏房一處隱蔽的房頂上張望劳翰。 院中可真熱鬧,春花似錦馒疹、人聲如沸佳簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽生均。三九已至,卻和暖如春腥刹,著一層夾襖步出監(jiān)牢的瞬間马胧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工衔峰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漓雅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓朽色,卻偏偏與公主長得像邻吞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子葫男,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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