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寫的處理效率差一些並且會佔用更多的磁盤空間以保留數據和索引。

如何選擇合適的存儲引擎

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

下面是常用存儲引擎的適用環境:
  1. MyISAM:默認的MySQL插件式存儲引擎,它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一
  2. InnoDB:用於事務處理應用程序,具有衆多特性,包括ACID事務支持。
  3. Memory:將所有數據保存在RAM中,在需要快速查找引用和其他類似數據的環境下,可提供極快的訪問。
  4. Merge:允許MySQL DBA或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,並作爲1個對象引用它們。對於諸如數據倉儲等VLDB環境十分適合。
發佈了2 篇原創文章 · 獲贊 22 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章