不同的存储引擎支持不同的锁机制,不同的索引,在内存使用和空间使用上有区别。在批量插入的速度上也有区别。只有InnoDB支持外键。MyISAM支持表锁,而InnoDB支持行锁。
MyISAM不支持事务、也不支持外键,访问的速度快,对事务完整性没有要求或者以select、insert为主的应用基本上都可以使用这个引擎来创建表。
InnoDB支持事务,具有提交、回滚和崩溃恢复能力的事务安全。但是与MyISAM相比,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
表锁和行锁
表锁是mysql中最基本的锁策略,也是开销最小的锁。表锁会锁定整张表。表锁由mysql服务器层实现,而行锁由存储引擎实现。
参考文献
[1]mysql怎么学:https://mp.weixin.qq.com/s/8rAqj56ZHTwJDhQ4UqBr3A