浅析Mysql常见的两种存储引擎:MyISAM与InnoDB

特性及该如何选择:
MyISAM更适合读密集的表,而InnoDB更适合写密集的表.在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎.一般来说,如果需要事务支持,并且有较高的并发读取频率(MyISAM的表粒度太大,所以当该表写并发量较高时,要等待的查询就会很大),InnoDB就会是不错的选择.如果表数据量很大(MyISAM支持压缩特性可以减少磁盘的空间占用),并且不需要绑定事务时,MyISAM是最好的选择.
二者之间的对比:
1.count运算上的区别:因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的,而对于InnoDB来说,则没有这种缓存.
2.是否支持事务和奔溃后的安全恢复: MyISAM强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持.InnoDB提供事务,支持事务,外部键等高级数据库功能.
3.MyISAM不支持外键,InnoDB支持外键

你可能感兴趣的:(学习之路,Mysql,储存引擎,MyISAM,InnoDB)