- InnoDB行锁和表锁都支持!
- MyISAM只支持表锁!
链接:https://www.nowcoder.com/questionTerminal/d5739672e78c498885ba2a540ab53500
来源:牛客网
Myisam和InnoDB的区别
- myisam:性能极佳,但是不支持事务和行级锁,崩溃后无法安全恢复
- 所以:去读操作频繁且不在乎崩溃后是否能恢复
- innodb:(事务性数据库引擎),大多数情况下使用的引擎,不支持全文索引
- 所以:要求事务和行级锁,要求全文索引时使用
- InnoDB行锁和表锁都支持!
- MyISAM只支持表锁!
InnoDB只有通过索引条件检索数据才使用行级锁,否则,InnoDB将使用表锁
- 也就是说,InnoDB的行锁是基于索引的!
- Innodb支持事务,MyIsAM不支持
- InnoDB支持外键,而MyISAM不支持
- InnoDB是聚集索引,MyISAM使用的是非聚集索引
- InnoDB 不保存表的具体行数,MyISAM 用一个变量保存了整个表的行数
- InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。
MyISAM读得快是因为直接映射到offset,而innodb还要先映射到块,再映射到行。