InnoDB 和 MyISAM 有什么区别呢?
(1)InnoDB 支持事务;而 MyISAM 不支持事物,强调的是性能,查询速度更快;
(2)InnoDB 支持行级锁和表级锁(默认行级锁),而 MyISAM 只支持表级锁;
(3)InnoDB 支持 MVCC, 而 MyISAM 不支持 MVCC;
(4)InnoDB 支持外键,而 MyISAM 不支持外键;
(5)InnoDB 早期版本不支持全文索引(从 MySQL5.6 开始支持全文索引),而 MyISAM 支持;
(7)InnoDB 不保存表的具体行数,count () 时要扫描一遍整个表来计算有多少行;MyISAM 则内置了一个计数器,count () 时它直接从计数器中读
MyISAM适用的场景
- 频繁执行全表count语句
- 对数据进行增删改的效率不高,查询非常频繁
- 没有事务
InnoDB适用的场景
- 数据增删改查都相当频繁
- 可靠性要求比较高,要求支持事务