1、MySQL的存儲引擎包括MyISAM、InnoDB、NDB Cluster、Maria、Falcon、Memory、Archive、Merge、Federated等,其中使用最普遍的是MyISAM、InnoDB;在MySQL5.5.8以後InnoDB成爲MySQL默認的存儲引擎;
一、MyISAM
1)、不支持事務,不支持外鍵,支持全文索引,處理速度快;
2)、MyISAM存儲引擎的表存儲成3個文件,文件名與表名相同,擴展名分別爲:frm(存儲表結構),MYD(存儲表數據),MYI(存儲表索引)
二、InnoDB
1)、支持事務,支持行鎖,支持外鍵
2)、表的結構存儲於.frm文件中。數據和索引存儲在innodb_data_home和innodb_data_path表空間中;
3)、實現了SQL的4中隔離級別(READ UNCOMMITTED、READ COMMITTED、REPEATABLE和SERIALIZABLE)
三、NDB Cluster
1)、負責管理各個節點的Manage節點主機,負責集羣的配置,啓動關閉各節點,以及實施數據的備份恢復等
2)、主鍵查找速度極快,並經過添加NDB數據存儲節點能夠線性的提交數據庫性能,是高可用,高性能的集羣系統;
3)、查詢鏈接操做是在數據庫層完成的,開銷大;
四、Maria
1)、支持緩存數據和索引文件,應用行鎖設計,提供MVCC功能;
2)、支持事務和非事務安全的選項,以及更好的BLOB字符類型的處理性能;
五、Falcon
1)、一款替代當前InnoDB存儲引擎的帶有事務等高級特性的數據庫存儲引擎,
2)、不使用cluster索引,不支持read uncommited 隔離級別,
3)、不支持語句級複製,爲了保證日誌和數據文件的一致性。
4)、支持表空間的概念,innodb只有數據文件概念,可是數據和索引表空間不能分開。支持在線備份
六、Memory
1)、數據存儲在內存中,表結構以文件存儲於磁盤,文件名與表名相同,後綴名爲frm;
2)、默認使用哈希索引,能夠按需求指定索引類型;只支持表鎖,併發性能較差;
3)、不支持VARCHAR、BLOB和TEXT的列類型;
七、Archive
1)、只支持INSERT、REPLACE和SELECT操做,不支持DELETE或UPDATE。它支持ORDER BY操做;
2)、使用zlib算法將數據和進行壓縮後存儲;
3)、使用行鎖來實現高併發的插入操做,但不支持事務;
八、Merge
1)、一組MyISAM表的組合,這些表的結構必須徹底同樣,查詢時表合併起來使用一條查詢;
九、Federated
1)、不存放數據,只提供對遠程MySQL服務器上面的數據的訪問接口算法