MySQL 數據表七種類型 ,分別是:BDB、InnoBDB、HEAP、ISAM、MERGE、MYISAM、Gemeni。
這七種又分為兩類,
一類是”事務安全型”(transaction-safe),包括BDB和InnoDB;
其余都屬於第二類,稱為”非事務安全型”(non-transaction-safe)。
1、BDB全稱是”Brekeley DB”,它是Mysql最早的具有事務能力的表的類型,由Sleepycat Software (http://www.sleepycat.com)開發。它提供了事務控制能力功能,它確保一組命令全部執行成功,或者當任何一個命令出現錯誤時所有 命令的結果都被回退,可以想像在電子銀行中事務控制能力是非常重要的。支持COMMIT、ROLLBACK和其他事務特性。
最新版本的Mysql已經計划 移除對BDB的支持,轉而全力發展InnoDB。
2、InnoDB是較新的事務安全型存儲引擎,用於事務處理應用程序,支持BDB的幾乎所有特性,並具有眾多新特性,包括ACID事務支持。
InnoDB:
特性:
事務處理機制
支持外鏈
崩潰后能立即恢復
支持外鍵功能,級聯刪除
支持並發能力
在硬盤上的存儲方式:InnoBDB frm
最新版本的Mysql已經計划移除對BDB的支持,轉而全力發展InnoDB。InnoDB對Mysql有更好的特性支持,而且開發社區活躍。
3、MyISAM默認的MySQL插件式存儲引擎,它是基於ISAM類型,但它增加了許多有用的擴展,它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。
注意,通過更改STORAGE_ENGINE配置變量,能夠方便地更改MySQL服務器的默認存儲引擎。
優點:
1)比ISAM表更小,所占資源更少
2)可以在不同平台間二進制移植表的類型在創建表時指定。
4、ISAM
是MyISAM類型出現之前MySQL表使用的默認類型,現在已經被MyISAM代替
5、Memory (HEAP)
是MySQL表中訪問最快的表,將所有數據保存在RAM中,在需要快速查找引用和其他類似數據的環境下,可提供極快的訪問。
注意,這種類型下數據是非持久化設計的,它一般適應於臨時表,如果MySQL或者服務器崩潰,表中數據全部丟失。
6、Merge
是一種值得關注的新式表,它是由一組MyISAM表組成,之所合並主要出於性能上考慮,因為它能夠提高搜索速度,提高修復效率,節省磁盤空 間。
允許MySQL DBA或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,並作為1個對象引用它們。
對於諸如數據倉儲等VLDB環境十分適合。有時它以 MRG_MYISAM 名稱出現。
MERGE是一個有趣的新類型,在3.23.25之后出現。一個MERGE表實際上是又一個MyISAM表的集合,合並而成的一個表,主要是為了效率的考慮,因為這樣不僅僅可以提高速度、搜索效率、修復效率而且還節省了磁盤空間。
7、Gemeni
Gemeni表,據聽說也是在MySQL 4.0之后推出的,不過截至當前,很少有針對它的介紹,同樣應用也就更少了,我們暫時不作介紹。
MySQL的數據表類型很多,其中比較重要的是MyISAM,InnoDB這兩種。
這兩種類型各有優缺點,需要根據實際情況選擇適合的,MySQL支持對不同的表設置不同的類型。下面做個簡單的對比:
MyISAM表類型是一種比較成熟穩定的表類型,但是MyISAM對一些功能不支持。