mysql七種表格
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對一些功能不支援。