MyISAM和 InnoDB.是MySQL中最常用的存储引擎。 这两个引擎各有优劣势,我们需要根据业务需求进行选择。
MyISAM 与INNODB的主要差异:
1, MyISAM 不支持事务,而 InnoDB支持
2, MyISAM 无法实现行级别锁,关系完整性,而 InnoDB可以。 MyISAM是表级别锁.
3, InnoDB不支持FULLTEXT索引,而 MyISAM 支持.
4, MyISAM 表的性能比 InnoDB表要高
5, InnoDB 更适合大型数据库因为他支持事务,而 MyISAM更适合小工程 。
6, InnoDB 支持 ACID (Atomicity, Consistency, Isolation 和 Durability) 而MyISAM 不支持
7, InnoDB 表中,AUTO_INCREMENT字段是索引的一部分.
8,一旦innoDB表被删除了,就无法重建
9,InnoDB不存储表级别的数据,因此当执行select count(*) 会扫扫描全表,而 MyISAM存储表级别的数据,可以快速读取表有多少行记录
10,MyISAM不支持外检引用完整性约束,而InnoDB支持。.
Summary:
– MyISAM is older and InnoDB is newer.
– MyISAM is simpler and InnoDB complex to build.
– Strict data integrity is needed in InnoDB as opposed to MyISAM.
– InnoDB allows for row level locking of updates and insertion while MyISAM allows for table level locking.
– MyISAM lacks transactions while InnoDB allows for use of transactions.
– InnoDB offers better data recovery as opposed to MyISAM
参考:
1, http://www.differencebetween.net/technology/software-technology/differences-between-myisam-and-innodb/
2, https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html
3,https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html