答案:MySQL有四种存储引擎:MyISAM、InnoDB、Memory、Merge。

• MyISAM存储引擎:是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但不支持事务和行级锁,也不支持外键,优势是访问速度快,对事务完整性没有要求或者以select、insert为主的应用基本上可以用这个引擎来创建表。

• InnoDB存储引擎:该存储引擎是基于聚簇索引建立的,索引和数据存储在一起,提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。InnoDB存储引擎的特点:支持自动增长列,支持外键约束。在MySQL 5.1以后InnoDB是MySQL的默认存储引擎。

• Memory存储引擎:Memory存储引擎使用存在于内存中的内容来创建表。每个Memory表只实际对应一个磁盘文件,格式是.frm。Memory类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用Hash索引,但是一旦服务关闭,表中的数据就会丢失掉。Memory存储引擎的表可以选择使用Btree索引或者Hash索引。Memory类型的存储引擎主要用于那些内容变化不频繁的代码表,或者作为统计操作的中间结果表,便于高效地对中间结果进行分析并得到最终的统计结果。

• Merge存储引擎:Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,Merge表本身并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行的。