存储数据文件:.MYD
存储索引文件:MYI

InnoDB:MySQL默认事务引擎,性能好,有自动崩溃恢复的特性.采用MVCC来支持高并发,并且实现了四个标准的隔离级别,实现了行级锁

MyISAM:MySQL5.1及之前版本的默认存储引擎,提供全文索引,压缩,空间函数(GIS)等特性,但不支持行级锁(加锁是对整张表加锁)和事务并且崩溃后无法安全恢复.

Archive:只支持insert和select,适合日志和数据采集类应用 

Blackhold:没有实现任何存储机制,它会丢弃所有插入的数据

CSV:可支持CSV文件的导入

Federate:访问其他MySQL服务器的代理,它会创建一个远程MySQL服务器的客户端连接,并将查询传输到远程服务器执行,然后提取或者发送需要的数据

Memory:如果需要快速访问数据,并且这些数据不会被修改,重启以后丢失也没有关系,那么使用Memory表.Memory表至少比MyISAM表要快一个数量级,因为所有的数据都保存在内存中,不需要进行磁盘I/O.Memory表的结构在重启后还会保留,但数据会丢失.
Memory表是表级锁,并发写入的性能较低,不支持BLOB或TEXT类型的列,并且每行的长度是固定的,所以即使指定了VARCHAR列,实际存储时也会转换成CHAR,这可能导致部分内在的浪费.

Merge:MyISAM引擎的一个变种.由多个MyISAM表合并而来的虚拟表.


一般情况下,InnoDB都是正确的选择,如果要用到全文索引,建议先考虑InnoDB加上Sphinx的组合,而不是支持全文索引的MyISAM.
如果是日志型应用,则MyISAM或Archive存储引擎比较好,它们开销低,而且插入速度非常快