MySQL 資料表主要支援六種型別 ,分別是:BDB 、 HEAP 、 ISAM 、 MERGE 、 MYISAM 、 InnoBDB 。
這六種又分為兩類,一類是” 事務安全型”(transaction-safe),包括 BDB 和 InnoDB;其餘都屬於第二類,稱為” 非事務安全型”(non-transaction-safe) 。
BDB 全稱是”Brekeley DB”, 它是 Mysql 最早的具有事務能力的表的型別,由 Sleepycat Software(http://www.sleepycat.com)開發。它提供了事務控制能力功能,它確保一組命令全部執行成功,或者當任何一個命令出現錯誤時所有命令的結果都被回退,可以想像在電子銀行中事務控制能力是非常重要的。支援 COMMIT 、 ROLLBACK 和其他事務特性。最新版本的 Mysql 已經計劃移除對 BDB 的支援,轉而全力發展 InnoDB 。
InnoDB 是較新的事務安全型儲存引擎,用於事務處理應用程式,支援 BDB 的幾乎所有特性,並具有眾多新特性,包括 ACID 事務支援。
特性:
事務處理機制
支援外鏈
崩潰後能立即恢復
支援外來鍵功能,級聯刪除
支援併發能力
在硬碟上的儲存方式:InnoBDB frm
最新版本的 Mysql 已經計劃移除對 BDB 的支援,轉而全力發展 InnoDB 。 InnoDB 對 Mysql 有更好的特性支援,而且開發社群活躍。
MyISAM 預設的 MySQL 外掛外掛式儲存引擎,它是基於 ISAM 型別,但它增加了許多有用的擴充套件,它是在 Web 、資料倉儲和其他應用環境下最常使用的儲存引擎之一。注意,透過更改 STORAGE_ENGINE 配置變數,能夠方便地更改 MySQL 站群伺服器的預設儲存引擎。
優點:
1. 比 ISAM 表更小,所佔資源更少
2. 可以在不同平臺間二進位制移植表的型別在建立表時指定。
ISAM 是 MyISAM 型別出現之前 MySQL 表使用的預設型別,現在已經被 MyISAM 代替。
Memory (HEAP) 是 MySQL 表中訪問最快的表,將所有資料儲存在 RAM 中,在需要快速查詢引用和其他類似資料的環境下,可提供極快的訪問。注意,這種型別下資料是非持久化設計的,它一般適應於臨時表,如果 MySQL 或者站群伺服器崩潰,表中資料全部丟失。
Merge 是一種值得關注的新式表,它是由一組 MyISAM 表組成,之所合併主要出於效能上考慮,因為它能夠提高搜尋速度,提高修復效率,節省磁碟空 間。允許 MySQL DBA 或開發人員將一系列等同的 MyISAM 表以邏輯方式組合在一起,並作為 1 個物件引用它們。對於諸如資料倉儲等 VLDB 環境十分適合。有時它以 MRG_MYISAM 名稱出現。
Archive 為大量很少引用的歷史、歸檔、或安全審計資訊的儲存和檢索提供了完美的站群解決方案。
Federated 能夠將多個分離的 MySQL 站群伺服器連結起來,從多個物理站群伺服器建立一個邏輯資料庫。十分適合於分散式環境或資料集市環境。
NDBCluster/Cluster/NDB MySQL 的簇式資料庫引擎,尤其適合於具有高效能查詢要求的應用程式,這類查詢需求還要求具有最高的正常工作時間和可用性。
CSV 使用標準的 CSV 格式,由逗號隔開的文字檔案,適應於外部資料交換
Blackhole 它會接受資料但不儲存,而且對任何檢索請求返回一個空集。它一般適應於資料會被自動複製並不進行本地儲存的分散式資料庫設計。(不確定的)似乎也可以用於臨時禁止/忽略對資料庫的應用程式輸入。
Example 這是一個測試引擎,你可以建立一個這樣的表,但既不能寫入資料,也不能檢索資料。它似乎是一個針對 MySql 開發者提供的示例引擎。