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服务器上面的数据的访问接口算法