Mysql 引擎

??數(shù)據(jù)庫存儲引擎是數(shù)據(jù)庫底層軟件組織簿训,數(shù)據(jù)庫管理系統(tǒng)(DBMS)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建、查詢米间、更新和刪除數(shù)據(jù)强品。不同的存儲引擎提供不同的存儲機(jī)制、索引技巧屈糊、鎖定水平等功能的榛,使用不同的存儲引擎,還可以 獲得特定的功能÷呷瘢現(xiàn)在許多不同的數(shù)據(jù)庫管理系統(tǒng)都支持多種不同的數(shù)據(jù)引擎夫晌。MySql的核心就是存儲引擎。

InnoDB存儲引擎

InnoDB是事務(wù)型數(shù)據(jù)庫的首選引擎昧诱,支持事務(wù)安全表(ACID)晓淀,支持行鎖定和外鍵,InnoDB是默認(rèn)的MySQL引擎盏档。
InnoDB主要特性有:

  1. InnoDB給MySQL提供了具有提交. 回滾和崩潰恢復(fù)能力的事物安全(ACID兼容)存儲引擎凶掰。InnoDB鎖定在行級并且也在SELECT語句中提供一個類似Oracle的非鎖定讀。這些功能增加了多用戶部署和性能。在SQL查詢中锄俄,可以自由地將InnoDB類型的表和其他MySQL的表類型混合起來局劲,甚至在同一個查詢中也可以混合
  2. InnoDB是為處理巨大數(shù)據(jù)量的最大性能設(shè)計(jì)。它的CPU效率可能是任何其他基于磁盤的關(guān)系型數(shù)據(jù)庫引擎鎖不能匹敵的
  3. InnoDB存儲引擎完全與MySQL服務(wù)器整合奶赠,InnoDB存儲引擎為在主內(nèi)存中緩存數(shù)據(jù)和索引而維持它自己的緩沖池鱼填。InnoDB將它的表和索引在一個邏輯表空間中,表空間可以包含數(shù)個文件(或原始磁盤文件)毅戈。這與MyISAM表不同苹丸,比如在MyISAM表中每個表被存放在分離的文件中。InnoDB表可以是任何尺寸苇经,即使在文件尺寸被限制為2GB的操作系統(tǒng)上
  4. InnoDB支持外鍵完整性約束赘理,存儲表中的數(shù)據(jù)時,每張表的存儲都按主鍵順序存放扇单,如果沒有顯示在表定義時指定主鍵商模,InnoDB會為每一行生成一個6字節(jié)的ROWID,并以此作為主鍵
  5. InnoDB被用在眾多需要高性能的大型數(shù)據(jù)庫站點(diǎn)上
    InnoDB不創(chuàng)建目錄蜘澜,使用InnoDB時施流,MySQL將在MySQL數(shù)據(jù)目錄下創(chuàng)建一個名為ibdata1的10MB大小的自動擴(kuò)展數(shù)據(jù)文件,以及兩個名為ib_logfile0和ib_logfile1的5MB大小的日志文件

MyISAM存儲引擎

MyISAM基于ISAM存儲引擎鄙信,并對其進(jìn)行擴(kuò)展瞪醋。它是在Web、數(shù)據(jù)倉儲和其他應(yīng)用環(huán)境下最常使用的存儲引擎之一装诡。MyISAM擁有較高的插入银受、查詢速度,但不支持事物鸦采。
MyISAM主要特性有:

  1. 大文件(達(dá)到63位文件長度)在支持大文件的文件系統(tǒng)和操作系統(tǒng)上被支持
  2. 當(dāng)把刪除和更新及插入操作混合使用的時候宾巍,動態(tài)尺寸的行產(chǎn)生更少碎片。這要通過合并相鄰被刪除的塊渔伯,以及若下一個塊被刪除蜀漆,就擴(kuò)展到下一塊自動完成
  3. 每個MyISAM表最大索引數(shù)是64,這可以通過重新編譯來改變咱旱。每個索引最大的列數(shù)是16
  4. 最大的鍵長度是1000字節(jié)确丢,這也可以通過編譯來改變,對于鍵長度超過250字節(jié)的情況吐限,一個超過1024字節(jié)的鍵將被用上
  5. BLOB和TEXT列可以被索引
  6. NULL被允許在索引的列中鲜侥,這個值占每個鍵的0~1個字節(jié)
  7. 所有數(shù)字鍵值以高字節(jié)優(yōu)先被存儲以允許一個更高的索引壓縮
  8. 每個MyISAM類型的表都有一個AUTO_INCREMENT的內(nèi)部列,當(dāng)INSERT和UPDATE操作的時候該列被更新诸典,同時AUTO_INCREMENT列將被刷新描函。所以說,MyISAM類型表的AUTO_INCREMENT列更新比InnoDB類型的AUTO_INCREMENT更快
  9. 可以把數(shù)據(jù)文件和索引文件放在不同目錄
  10. 每個字符列可以有不同的字符集
  11. 有VARCHAR的表可以固定或動態(tài)記錄長度
  12. VARCHAR和CHAR列可以多達(dá)64KB
    使用MyISAM引擎創(chuàng)建數(shù)據(jù)庫,將產(chǎn)生3個文件舀寓。文件的名字以表名字開始胆数,擴(kuò)展名之處文件類型:frm文件存儲表定義、數(shù)據(jù)文件的擴(kuò)展名為.MYD(MYData)互墓、索引文件的擴(kuò)展名時.MYI(MYIndex)

MEMORY存儲引擎

MEMORY存儲引擎將表中的數(shù)據(jù)存儲到內(nèi)存中必尼,未查詢和引用其他表數(shù)據(jù)提供快速訪問。MEMORY主要特性有:

  1. MEMORY表的每個表可以有多達(dá)32個索引篡撵,每個索引16列判莉,以及500字節(jié)的最大鍵長度
  2. MEMORY存儲引擎執(zhí)行HASH和BTREE縮影
  3. 可以在一個MEMORY表中有非唯一鍵值
  4. MEMORY表使用一個固定的記錄長度格式
  5. MEMORY不支持BLOB或TEXT列
  6. MEMORY支持AUTO_INCREMENT列和對可包含NULL值的列的索引
  7. MEMORY表在所由客戶端之間共享(就像其他任何非TEMPORARY表)
  8. MEMORY表內(nèi)存被存儲在內(nèi)存中,內(nèi)存是MEMORY表和服務(wù)器在查詢處理時的空閑中育谬,創(chuàng)建的內(nèi)部表共享
  9. 當(dāng)不再需要MEMORY表的內(nèi)容時券盅,要釋放被MEMORY表使用的內(nèi)存,應(yīng)該執(zhí)行DELETE FROM或TRUNCATE TABLE膛檀,或者刪除整個表(使用DROP TABLE)

存儲引擎的選擇

不同的存儲引擎都有各自的特點(diǎn)锰镀,以適應(yīng)不同的需求,如下表所示

功 能 MYISAM Memory InnoDB Archive
存儲限制 256TB RAM 64TB None
支持事物 No No Yes No
支持全文索引 Yes No No No
支持?jǐn)?shù)索引 Yes Yes Yes No
支持哈希索引 No Yes No No
支持?jǐn)?shù)據(jù)緩存 No N/A Yes No
支持外鍵 No No Yes No

如果要提供提交咖刃、回滾互站、崩潰恢復(fù)能力的事物安全(ACID兼容)能力,并要求實(shí)現(xiàn)并發(fā)控制僵缺,InnoDB是一個好的選擇
如果數(shù)據(jù)表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率
如果只是臨時存放數(shù)據(jù)踩叭,數(shù)據(jù)量不大磕潮,并且不需要較高的數(shù)據(jù)安全性,可以選擇將數(shù)據(jù)保存在內(nèi)存中的Memory引擎容贝,MySQL中使用該引擎作為臨時表自脯,存放查詢的中間結(jié)果
如果只有INSERT和SELECT操作,可以選擇Archive斤富,Archive支持高并發(fā)的插入操作膏潮,但是本身不是事務(wù)安全的。Archive非常適合存儲歸檔數(shù)據(jù)满力,如記錄日志信息可以使用Archive
使用哪一種引擎需要靈活選擇焕参,一個數(shù)據(jù)庫中多個表可以使用不同引擎以滿足各種性能和實(shí)際需求,使用合適的存儲引擎油额,將會提高整個數(shù)據(jù)庫的性能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叠纷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子潦嘶,更是在濱河造成了極大的恐慌涩嚣,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異航厚,居然都是意外死亡顷歌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門幔睬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眯漩,“玉大人,你說我怎么就攤上這事溪窒±と” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵澈蚌,是天一觀的道長摹芙。 經(jīng)常有香客問我,道長宛瞄,這世上最難降的妖魔是什么浮禾? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮份汗,結(jié)果婚禮上盈电,老公的妹妹穿的比我還像新娘。我一直安慰自己杯活,他們只是感情好匆帚,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旁钧,像睡著了一般吸重。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歪今,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天嚎幸,我揣著相機(jī)與錄音,去河邊找鬼寄猩。 笑死嫉晶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的田篇。 我是一名探鬼主播替废,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泊柬!你這毒婦竟也來了舶担?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤彬呻,失蹤者是張志新(化名)和其女友劉穎衣陶,沒想到半個月后柄瑰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剪况,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年教沾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片译断。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡授翻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出孙咪,到底是詐尸還是另有隱情堪唐,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布翎蹈,位于F島的核電站淮菠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荤堪。R本人自食惡果不足惜合陵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澄阳。 院中可真熱鬧拥知,春花似錦、人聲如沸碎赢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肮塞。三九已至襟齿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峦嗤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工屋摔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烁设,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓钓试,卻偏偏與公主長得像装黑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子弓熏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

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