**功能/**特性
InnoDB
MyISAM
全文检索(FULLTEXT****)
不支持
支持
索引
必须包含一个主键索引或自增列索引,自增列索引可加入其它字段。
可以没有索引
事务
支持
不支持
存储
结构定义文件(Schema),数据文件(Data),
索引文件(Index)
数据文件、日志文件。InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
存储体积
较大
较小
性能(读)
一般
大量的SELECT操作性能更好
性能(写)
INSERT/UPDATE 性能要好,DELETE FROM table是逐行删除。
外键
支持
不支持
表行数
select count(*) from table 时扫描表进行统计。
select count(*) from table,直接从系统数据库中读出此表行数。有查询条件时更InnoDB一样要扫描表。
锁
有行锁(locking on row level)与无锁读取机制(non-locking read in SELECTs),MySQL不能确定要扫描的范围时,会锁全表。
只有表锁
LOAD TABLE
FROM MASTER
无效
有效
内存要求
较高
较低
磁盘IO****要求
较高
较低
ACID
是
否
在读取作频繁,写操作较少,并且对数据表之间关系简单时采用MyISAM比较好,如:CMS
在写操作频繁,读操作性能要求不苛刻的情况下或数据表之间关系繁杂、需要级联更新、删除时采用InnoDB,如:CRM、交易系统