MySQL的myisam和innodb两种存储引擎的不同之处
1、事务的支持不同(innodb支持事务,myisam不支持事务)
2、锁粒度(innodb行锁应用,myisam表锁)
3、存储空间(innodb既缓存索引文件又缓存数据文件,myisam只能缓存索引文件)
4、存储结构
(myisam:数据文件的扩展名为.MYD myData ,索引文件的扩展名是.MYI myIndex)
(innodb:所有的表都保存在同一个数据文件里面 即为.Ibd)
5、是否支持外键( InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败);
如何选择:
-
是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM;
-
如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使用InnoDB。
-
系统奔溃后,MyISAM恢复起来更困难,能否接受;
-
MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM),说明其优势是有目共睹的,如果你不知道用什么,那就用InnoDB,至少不会差。