天天看點

Mysql各種存儲引擎的特性以及如何選擇存儲引擎

下面我們重點介紹幾種常用的存儲引擎并對比各個存儲引擎之間的差別和推薦使用方式。

特點

Myisam

BDB

Memory

InnoDB

Archive

存儲限制

沒有

64TB

事務安全

支援

鎖機制

表鎖

頁鎖

行鎖

B樹索引

哈希索引

全文索引

叢集索引

資料緩存

索引緩存

資料可壓縮

空間使用

N/A

非常低

記憶體使用

中等

批量插入的速度

非常高

支援外鍵

最常使用的2種存儲引擎:

Myisam是Mysql的預設存儲引擎。當create建立新表時,未指定新表的存儲引擎時,預設使用Myisam。每個MyISAM在磁盤上存儲成三個檔案。檔案名都和表名相同,擴充名分别是.frm(存儲表定義)、.MYD (MYData,存儲資料)、.MYI (MYIndex,存儲索引)。資料檔案和索引檔案可以放置在不同的目錄,平均分布io,獲得更快的速度。   

InnoDB存儲引擎提供了具有送出、復原和崩潰恢複能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留資料和索引。

選擇标準:根據應用特點選擇合适的存儲引擎,對于複雜的應用系統可以根據實際情況選擇多種存儲引擎進行組合。

下面是常用存儲引擎的适用環境:

MyISAM:預設的MySQL插件式存儲引擎,它是在Web、資料倉儲和其他應用環境下最常使用的存儲引擎之一

InnoDB:用于事務處理應用程式,具有衆多特性,包括ACID事務支援。

Memory:将所有資料儲存在RAM中,在需要快速查找引用和其他類似資料的環境下,可提供極快的通路。

Merge:允許MySQL DBA或開發人員将一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們。對于諸如資料倉儲等VLDB環境十分适合。

本文轉自 小楊_Ivan 51CTO部落格,原文連結:http://blog.51cto.com/aqiang/1896096