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

幾個常用存儲引擎的特點

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

特點MyisamBDBMemoryInnoDBArchive
存儲限制沒有沒有64TB沒有
事務安全
支持
支持
鎖機制表鎖頁鎖表鎖行鎖行鎖
B樹索引支持支持支持支持
哈希索引

支持支持
全文索引支持



集羣索引


支持
數據緩存

支持支持
索引緩存支持
支持支持
數據可壓縮支持


支持
空間使用N/A非常低
內存使用中等
批量插入的速度非常高
支持外鍵


支持


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

  • Myisam是Mysql的默認存儲引擎。當create創建新表時,未指定新表的存儲引擎時,默認使用Myisam。每個MyISAM在磁盤上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD (MYData,存儲數據)、.MYI (MYIndex,存儲索引)。數據文件和索引文件可以放置在不同的目錄,平均分佈io,獲得更快的速度。   

  • InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些並且會佔用更多的磁盤空間以保留數據和索引。

如何選擇合適的存儲引擎

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

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

  1. MyISAM:默認的MySQL插件式存儲引擎,它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一

  2. InnoDB:用於事務處理應用程序,具有衆多特性,包括ACID事務支持。

  3. Memory:將所有數據保存在RAM中,在需要快速查找引用和其他類似數據的環境下,可提供極快的訪問。

  4. Merge:允許MySQL DBA或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,並作爲1個對象引用它們。對於諸如數據倉儲等VLDB環境十分適合。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章