Innodb儲存引擎支援事務,其設計目標主要面向線上事務處理(OLTP)的應用。其特點是行鎖設計、支援外來鍵,並支援類似於Oracle的非鎖定讀,即預設讀操作不會產生鎖。
Innodb儲存引擎將資料放在一個邏輯的表空間中,也可以單獨放到一個獨立的ibd檔案中。此外,還支援用裸裝置(row disk)來建立其表空間。
此引擎不支援事務、採用表鎖設計、支援全文索引,主要面向一些OLAP資料庫應用。
MyISAM的另一個與眾不同是它的緩衝池只快取索引檔案,而不緩衝資料檔案。
MyISAM儲存引擎表由MYD和MYI組成,MYD用來存放資料檔案,MYI用來存放索引檔案。可以通過myisampack壓縮和解壓資料,但壓縮後就成只讀表了。
NDB儲存引擎是一個叢集儲存引擎,其結構是share nothing的叢集架構,能提供更高可用性。
NDB的特點是資料全部放在記憶體中(從5.1開始,可以將非索引資料放在磁碟上),因此主鍵查詢的速度極快,並且通過新增NDB資料儲存節點可以線性的提高資料庫效能,是高可用、高效能的叢集系統
需要注意的是,NDB儲存引擎的連線操作(JOIN)實在mysql資料庫層完成的,而不是在儲存引擎層完成。這意味著,複雜的連線操作需要巨大的網路開銷,因此查詢速度很慢。
Memory儲存引擎(HEAP儲存引擎)將表中的資料放在記憶體中,非常適合用於儲存臨時資料的臨時表,以及資料倉儲中的緯度表。Memory儲存引擎預設使用雜湊索引,而不是B+樹索引。
Archive儲存引擎只支援insert和select操作,使用zlib演算法將資料行進行壓縮後儲存,壓縮比一般可以達到1:10。Archinve儲存引擎非常適合儲存歸檔資料,如日誌資訊。
使用行鎖來實現高併發插入操作,但其本身並不是事務安全的儲存引擎,其設計目標主要是提供高速的插入和壓縮功能。
Federated儲存引擎表並不存放資料,它只是指向一臺遠端mysql資料庫伺服器上的表。只支援mysql資料庫表,不支援異構資料庫表。
其設計目標主要是用來取代原有的Myisam儲存引擎。特點是:支援快取資料問索引檔案,應用了行鎖設計,提供了MVCC功能,支援事務和非事務安全選項,以及更好的BLOB字元型別的處理效能。