mysql的各種引擎

1.ISAM

該引擎在讀取數(shù)據(jù)方面速度很快梗摇,而且不占用大量的內(nèi)存和存儲資源毁兆;但是ISAM不支持事務(wù)處理、不支持外來鍵茶行、不能夠容錯(cuò)躯概、也不支持索引。該引擎在包括MySQL 5.1及其以上版本的數(shù)據(jù)庫中不再支持畔师。

2. MyISAM

該引擎基于ISAM數(shù)據(jù)庫引擎娶靡,除了提供ISAM里所沒有的索引和字段管理等大量功能,MyISAM支持表級鎖.缺點(diǎn)同上.

3.?HEAP(也稱為MEMORY)

該存儲引擎通過在內(nèi)存中創(chuàng)建臨時(shí)表來存儲數(shù)據(jù)茉唉。每個(gè)基于該存儲引擎的表實(shí)際對應(yīng)一個(gè)磁盤文件固蛾,該文件的文件名和表名是相同的结执,類型為.frm度陆。該磁盤文件只存儲表的結(jié)構(gòu)艾凯,而其數(shù)據(jù)存儲在內(nèi)存中,所以使用該種引擎的表擁有極高的插入懂傀、更新和查詢效率趾诗。這種存儲引擎默認(rèn)使用哈希(HASH)索引,其速度比使用B-+Tree型要快蹬蚁,但也可以使用B樹型索引恃泪。由于這種存儲引擎所存儲的數(shù)據(jù)保存在內(nèi)存中,所以其保存的數(shù)據(jù)具有不穩(wěn)定性犀斋,比如如果mysqld進(jìn)程發(fā)生異常贝乎、重啟或計(jì)算機(jī)關(guān)機(jī)等等都會造成這些數(shù)據(jù)的消失,所以這種存儲引擎中的表的生命周期很短叽粹,一般只使用一次览效。

4.CSV(Comma-Separated Values逗號分隔值)

使用該引擎的MySQL數(shù)據(jù)庫表會在MySQL安裝目錄data文件夾中的和該表所在數(shù)據(jù)庫名相同的目錄中生成一個(gè).CSV文件(所以,它可以將CSV類型的文件當(dāng)做表進(jìn)行處理)虫几,這種文件是一種普通文本文件锤灿,每個(gè)數(shù)據(jù)行占用一個(gè)文本行。該種類型的存儲引擎不支持索引辆脸,即使用該種類型的表沒有主鍵列但校;另外也不允許表中的字段為null。

5.BLACKHOLE(黑洞引擎)

該存儲引擎支持事務(wù)啡氢,而且支持mvcc的行級鎖状囱,寫入這種引擎表中的任何數(shù)據(jù)都會消失,主要用于做日志記錄或同步歸檔的中繼存儲倘是,這個(gè)存儲引擎除非有特別目的亭枷,否則不適合使用。(作為主從復(fù)制中的中繼重復(fù)器或在其上面添加過濾器機(jī)制,例如,假設(shè)你的應(yīng)用需要從服務(wù)器側(cè)的過濾規(guī)則辨绊,但傳輸所有二進(jìn)制日志數(shù)據(jù)到從服務(wù)器會導(dǎo)致較大的網(wǎng)絡(luò)流量奶栖。在這種情況下,在主服務(wù)器主機(jī)上建立一個(gè)偽從服務(wù)器進(jìn)程门坷。)

解釋:

主服務(wù)器的操作寫入二進(jìn)制日志,偽mysqld進(jìn)程作為從服務(wù)器宣鄙,在偽mysqld進(jìn)程上配置replicate-do和replicate-ignore規(guī)則,并且寫一個(gè)新的默蚌,被過濾的二進(jìn)制日志 冻晤。這個(gè)已過濾日志被提供給其他真正的從服務(wù)器。因?yàn)閭芜M(jìn)程不存儲任何數(shù)據(jù)绸吸,只消耗很小的額外的mysqld進(jìn)程資源鼻弧。這個(gè)類型的建立可以用額外復(fù)制從服務(wù)器來重復(fù)设江。

6.ARCHIVE

該存儲引擎非常適合存儲大量獨(dú)立的、作為歷史記錄的數(shù)據(jù)攘轩。區(qū)別于InnoDB和MyISAM這兩種引擎叉存,ARCHIVE提供了壓縮功能,擁有高效的插入速度度帮,但是這種引擎不支持索引歼捏,所以查詢性能較差一些。

7.??InnoDB

該存儲引擎為MySQL表提供了ACID事務(wù)支持笨篷、系統(tǒng)崩潰修復(fù)能力和多版本并發(fā)控制(即MVCC Multi-Version Concurrency Control)的行級鎖;該引擎支持自增長列(auto_increment),自增長列的值不能為空瞳秽,如果在使用的時(shí)候?yàn)榭談t自動(dòng)從現(xiàn)有值開始增值,如果有但是比現(xiàn)在的還大率翅,則直接保存這個(gè)值; 該引擎存儲引擎支持外鍵(foreign key) ,外鍵所在的表稱為子表而所依賴的表稱為父表练俐。該引擎在5.5后的MySQL數(shù)據(jù)庫中為默認(rèn)存儲引擎。

8.PERFORMANCE_SCHEMA

該引擎主要用于收集數(shù)據(jù)庫服務(wù)器性能參數(shù)冕臭。這種引擎提供以下功能:提供進(jìn)程等待的詳細(xì)信息腺晾,包括鎖、互斥變量浴韭、文件信息丘喻;保存歷史的事件匯總信息,為提供MySQL服務(wù)器性能做出詳細(xì)的判斷念颈;對于新增和刪除監(jiān)控事件點(diǎn)都非常容易泉粉,并可以隨意改變mysql服務(wù)器的監(jiān)控周期,例如(CYCLE榴芳、MICROSECOND)嗡靡。

9.?Berkeley(BDB)

該存儲引擎支持COMMIT和ROLLBACK等其他事務(wù)特性。該引擎在包括MySQL 5.1及其以上版本的數(shù)據(jù)庫中不再支持窟感。

10.Merge

該引擎將一定數(shù)量的MyISAM表聯(lián)合而成一個(gè)整體讨彼。

11.??Cluster/NDB

該存儲引擎用于多臺數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大柿祈、安全和性能要求高的場景哈误。

MySQL 存儲引擎(MyISAM、InnoDB躏嚎、NDBCluster)

MyISAM

1.特性

不支持事務(wù):MyISAM存儲引擎不支持事務(wù)蜜自,所以對事務(wù)有要求的業(yè)務(wù)場景不能使用

表級鎖定:其鎖定機(jī)制是表級索引,這雖然可以讓鎖定的實(shí)現(xiàn)成本很小但是也同時(shí)大大降低了其并發(fā)性能

讀寫互相阻塞:不僅會在寫入的時(shí)候阻塞讀取卢佣,MyISAM還會在讀取的時(shí)候阻塞寫入重荠,但讀本身并不會阻塞另外的讀

只會緩存索引:MyISAM可以通過key_buffer緩存以大大提高訪問性能減少磁盤IO,但是這個(gè)緩存區(qū)只會緩存索引虚茶,而不會緩存數(shù)據(jù)

2.適用場景

不需要事務(wù)支持(不支持)

并發(fā)相對較低(鎖定機(jī)制問題)

數(shù)據(jù)修改相對較少(阻塞問題)

以讀為主

數(shù)據(jù)一致性要求不是非常高

3.最佳實(shí)踐

盡量索引(緩存機(jī)制)

調(diào)整讀寫優(yōu)先級戈鲁,根據(jù)實(shí)際需求確保重要操作更優(yōu)先

啟用延遲插入改善大批量寫入性能

盡量順序操作讓insert數(shù)據(jù)都寫入到尾部仇参,減少阻塞

分解大的操作,降低單個(gè)操作的阻塞時(shí)間

降低并發(fā)數(shù)婆殿,某些高并發(fā)場景通過應(yīng)用來進(jìn)行排隊(duì)機(jī)制

對于相對靜態(tài)的數(shù)據(jù)诈乒,充分利用Query Cache可以極大的提高訪問效率

MyISAM的Count只有在全表掃描的時(shí)候特別高效,帶有其他條件的count都需要進(jìn)行實(shí)際的數(shù)據(jù)訪問

InnoDB

1.特性

具有較好的事務(wù)支持:支持4個(gè)事務(wù)隔離級別鸣皂,支持多版本讀

行級鎖定:通過索引實(shí)現(xiàn)抓谴,全表掃描仍然會是表鎖暮蹂,注意間隙鎖的影響

讀寫阻塞與事務(wù)隔離級別相關(guān)

具有非常高效的緩存特性:能緩存索引寞缝,也能緩存數(shù)據(jù)

整個(gè)表和主鍵以Cluster方式存儲,組成一顆平衡樹

所有Secondary Index都會保存主鍵信息

2.適用場景

需要事務(wù)支持(具有較好的事務(wù)特性)

行級鎖定對高并發(fā)有很好的適應(yīng)能力仰泻,但需要確保查詢是通過索引完成

數(shù)據(jù)更新較為頻繁的場景

數(shù)據(jù)一致性要求較高

硬件設(shè)備內(nèi)存較大荆陆,可以利用InnoDB較好的緩存能力來提高內(nèi)存利用率,盡可能減少磁盤 IO

3.最佳實(shí)踐

主鍵盡可能小集侯,避免給Secondary index帶來過大的空間負(fù)擔(dān)

避免全表掃描被啼,因?yàn)闀褂帽礞i

盡可能緩存所有的索引和數(shù)據(jù),提高響應(yīng)速度

在大批量小插入的時(shí)候棠枉,盡量自己控制事務(wù)而不要使用autocommit自動(dòng)提交

合理設(shè)置innodb_flush_log_at_trx_commit參數(shù)值浓体,不要過度追求安全性

避免主鍵更新,因?yàn)檫@會帶來大量的數(shù)據(jù)移動(dòng)

NDBCluster

1.特性

分布式:分布式存儲引擎辈讶,可以由多個(gè)NDBCluster存儲引擎組成集群分別存放整體數(shù)據(jù)的一部分

支持事務(wù):和Innodb一樣命浴,支持事務(wù)

可與mysqld不在一臺主機(jī):可以和mysqld分開存在于獨(dú)立的主機(jī)上,然后通過網(wǎng)絡(luò)和mysqld通信交互

內(nèi)存需求量巨大:新版本索引以及被索引的數(shù)據(jù)必須存放在內(nèi)存中贱除,老版本所有數(shù)據(jù)和索引必須存在與內(nèi)存中

2.適用場景

具有非常高的并發(fā)需求

對單個(gè)請求的響應(yīng)并不是非常的critical

查詢簡單生闲,過濾條件較為固定,每次請求數(shù)據(jù)量較少月幌,又不希望自己進(jìn)行水平Sharding

3.最佳實(shí)踐

盡可能讓查詢簡單碍讯,避免數(shù)據(jù)的跨節(jié)點(diǎn)傳輸

盡可能滿足SQL節(jié)點(diǎn)的計(jì)算性能,大一點(diǎn)的集群SQL節(jié)點(diǎn)會明顯多余Data節(jié)點(diǎn)

在各節(jié)點(diǎn)之間盡可能使用萬兆網(wǎng)絡(luò)環(huán)境互聯(lián)扯躺,以減少數(shù)據(jù)在網(wǎng)絡(luò)層傳輸過程中的延時(shí)

4. 它的限制

4.1 不支持臨時(shí)表捉兴。

4.2 不支持基于TEXT and BLOB 字段的索引。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末录语,一起剝皮案震驚了整個(gè)濱河市倍啥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钦无,老刑警劉巖逗栽,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異失暂,居然都是意外死亡彼宠,警方通過查閱死者的電腦和手機(jī)鳄虱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凭峡,“玉大人拙已,你說我怎么就攤上這事〈菁剑” “怎么了倍踪?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長索昂。 經(jīng)常有香客問我建车,道長,這世上最難降的妖魔是什么椒惨? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任缤至,我火速辦了婚禮,結(jié)果婚禮上康谆,老公的妹妹穿的比我還像新娘领斥。我一直安慰自己,他們只是感情好沃暗,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布月洛。 她就那樣靜靜地躺著,像睡著了一般孽锥。 火紅的嫁衣襯著肌膚如雪嚼黔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天忱叭,我揣著相機(jī)與錄音隔崎,去河邊找鬼。 笑死韵丑,一個(gè)胖子當(dāng)著我的面吹牛爵卒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撵彻,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼钓株,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了陌僵?” 一聲冷哼從身側(cè)響起轴合,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碗短,沒想到半個(gè)月后受葛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年总滩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纲堵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闰渔,死狀恐怖席函,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冈涧,我是刑警寧澤茂附,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站督弓,受9級特大地震影響营曼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咽筋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一溶推、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奸攻,春花似錦、人聲如沸虱痕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽部翘。三九已至硝训,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間新思,已是汗流浹背窖梁。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夹囚,地道東北人纵刘。 一個(gè)月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像荸哟,于是被迫代替她去往敵國和親假哎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

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