一.InnoDB
? ? 1.mysql5.5之后的默認(rèn)存儲(chǔ)引擎
? ? 2.支持事務(wù)
? ? 3.行鎖
? ? 4.外鍵約束
? ? 5.索引
? ? 6.實(shí)現(xiàn)MVCC(Multi-Version Concurrency Control多版本并發(fā)控制)
? ? 7.支持四種隔離等級(未提交讀(Read uncommitted)俗批,已提交讀(Read committed),已提交讀(Read committed)叹洲,已提交讀(Read committed))
? ? 8.創(chuàng)建的表存儲(chǔ)結(jié)構(gòu)是.frm 分為結(jié)構(gòu)文件和數(shù)據(jù)索引文件
二.MyISAM
? ? 1.mysql5.5之前的默認(rèn)存儲(chǔ)引擎
? ? 2.表鎖
? ? 3.索引(包括全文索引)
? ? 4.創(chuàng)建的表存儲(chǔ)結(jié)構(gòu)是.frm文件保存表的定義?.MYD保存表的數(shù)據(jù);.MYI是表的索引文件
三.Memory
? ? 1.表數(shù)據(jù)存放在內(nèi)存
? ? 2.支持索引(不支持全文索引)
? ? 3.表鎖
四.ARCHIVE(歸檔)
? ? 1.允許插入和查詢辩恼,不允許修改和刪除经宏。相當(dāng)于擁有只讀權(quán)限和寫入權(quán)限,沒有修改權(quán)限和刪除權(quán)限
? ? 2.以zlib對表數(shù)據(jù)進(jìn)行壓縮,磁盤I/O更少
? ? 3.數(shù)據(jù)存儲(chǔ)在ARZ為后綴的文件中
? ? 4.較小的空間占用也能在你移植MySQL數(shù)據(jù)的時(shí)候發(fā)揮作用丸边。當(dāng)你需要把數(shù)據(jù)從一臺MySQL服務(wù)器轉(zhuǎn)移到另一臺的時(shí)候,Archive表可以方便地移植到新的MySQL環(huán)境荚孵,你只需將保存Archive表的底層文件復(fù)制過去就可以了
? ? 5.適合大數(shù)據(jù)存儲(chǔ)
五.Merge
? ? 1.允許你把許多結(jié)構(gòu)相同的表合并為一個(gè)表
? ? 2.基本表類型必須是MyISAM的
? ? 3.多用來進(jìn)行分區(qū)
六.CSV
? ???CSV引擎有點(diǎn)類似Oracle的外部表妹窖。它可以將“逗號分隔值(CSV)文件”作為表進(jìn)行處理,但不支持在這種文件上建立相關(guān)索引收叶。在服務(wù)器運(yùn)行中骄呼,這種引擎支持從數(shù)據(jù)庫中拷入/拷出CSV文件。如果從電子表格軟件輸出一個(gè)CSV文件判没,將其存放在MySQL服務(wù)器的數(shù)據(jù)目錄中蜓萄,服務(wù)器就能夠馬上讀取相關(guān)的CSV文件。同樣澄峰,如果寫數(shù)據(jù)庫到一個(gè)CSV表嫉沽,外部程序也可以立刻讀取它。在實(shí)現(xiàn)某種類型的日志記錄時(shí)俏竞,CSV表作為一種數(shù)據(jù)交換格式绸硕,特別有用
七.BLACKHOLE
? ? 1.支持所有類型的索引
? ? 2.表不存儲(chǔ)數(shù)據(jù)堂竟,如果復(fù)制基于SBR,語句可以記錄并在從庫執(zhí)行玻佩;如果復(fù)制為RBR出嘹、MBR,UPDATE及DELETE操作將會(huì)跳過咬崔,不會(huì)記錄也從庫不執(zhí)行
? ? 3.Insert觸發(fā)器可以正常使用税稼,Update、Delete觸發(fā)器因?yàn)椴淮鎯?chǔ)數(shù)據(jù)不能觸發(fā)垮斯,F(xiàn)OR EACH ROW 也不能觸發(fā)
? ? 4.可能被用來查找與存儲(chǔ)引擎自身不相關(guān)的性能瓶頸
? ? 5.可用在主從配置中(具體的百度)
八.FEDERDATED
? ??FEDERATED存儲(chǔ)引擎訪問在遠(yuǎn)程數(shù)據(jù)庫的表中的數(shù)據(jù)郎仆,而不是本地的表。這個(gè)特性給某些開發(fā)應(yīng)用帶來了便利甚脉,你可以直接在本地構(gòu)建一個(gè)federated表來連接遠(yuǎn)程數(shù)據(jù)表丸升,配置好了之后本地表的數(shù)據(jù)可以直接跟遠(yuǎn)程數(shù)據(jù)表同步。實(shí)際上這個(gè)引擎里面是不真實(shí)存放數(shù)據(jù)的牺氨,所需要的數(shù)據(jù)都是連接到其他MySQL服務(wù)器上
? ? 1.對本地虛擬表的結(jié)構(gòu)修改狡耻,并不會(huì)修改遠(yuǎn)程表的結(jié)構(gòu)
? ? 2.truncate?命令,會(huì)清除遠(yuǎn)程表數(shù)據(jù)
? ? 3.drop命令只會(huì)刪除虛擬表猴凹,并不會(huì)刪除遠(yuǎn)程表
? ? 4.不支持?alter?table?命令?
九.NDB (NDB Cluster分布式存儲(chǔ)引擎)
? ? 主要用于MySQL Cluster 分布式集群環(huán)境?參考(或者百度用法)