MySQL 5.0以后的版本默认的存储引擎为InnoDb,之前是MyISAM。
现在说说两者的区别:
1.数据存储结构的不同
MyISAM存储文件:.MYD(存储表数据),.MYI(存储表结构),.FRM(存储表结构)
InnoDb存储文件: .FRM(存储表结构),.idb(存储表数据和索引)
2.数据存取方式不同
MyISAM的主键索引为非聚簇索引,叶子节点存储的是数据的物理地址,Innodb的主键索引是聚簇索引,叶子节点存储的是数据。
Innodb的主键索引的叶子节点直接存储的是数据,二级索引的叶子节点存储的是主键,在利用主键来获取数据,这个特性决定了索引组织表中数据也是索引的一部分;
MyISAM的主键索引和二级索引的叶子节点存储的是主键的地址
3.对事物的支持不同
InonDb支持事务,MyISAM不支持事务
4.对锁的支持不同
MyISAM对数据进行修改的时候,是加上表锁,而InnoDb对数据进行修改的时候,添加的是行锁
InnoDb还有事务提交,事务回滚,崩溃修复的能力
5.外键的支持不同
innodb支持外键,myisam不支持外键
总结:建议使用InnoDb,但是如果对于大多都是查询,可以选用MyISAm。
需要支持事务的,有查询和修改的还是要选用InnoDb。