1.INNODB是默认使用的,MYISAM是早期使用的
2.主要区别
| MYISAM | INNODB | |
|---|---|---|
| 事务 | 不支持 | 支持 |
| 行级锁 | 不支持(表锁) | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间的大小 | 较小 | 较大,两倍 |
3.MYISAM适用场景及优缺点
3.1 优点
1)不支持事务的设计,但是并不代表着有事务操作的项目不能用MyIsam存储引擎,可以在service层进行根据自己的业务需求进行相应的控制。
2)不支持外键的表设计。
3)查询速度很快,如果数据库insert和update的操作比较多的话比较适用。
4)整天 对表进行加锁的场景。
5)MyISAM极度强调快速读取操作。
6)MyIASM中存储了表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选择。
3.2缺点:
- 就是不能在表损坏后恢复数据。(是不能主动恢复)
4.INNODB适用场景及优缺点
1)经常更新的表,适合处理多重并发的更新请求。
2)支持事务。
3)可以从灾难中恢复(通过bin-log日志等)。
4)外键约束。只有他支持外键。
5)支持自动增加列属性auto_increment。
5.物理空间存储
参考: https://www.cnblogs.com/sunsky303/p/8274586.html